The maintenance of diverse life history strategies within and among species remains a fundamental question in ecology and evolutionary biology. By using a near-complete 16-year pedigree of 12,579 winter-run steelhead (Oncorhynchus mykiss) from the Hood River, Oregon, we examined the continued maintenance of two life history traits: the number of lifetime spawning events (semelparous vs. iteroparous) and age at first spawning (2-5 years). We found that repeat-spawning fish had more than 2.5 times the lifetime reproductive success of single-spawning fish. However, first-time repeat-spawning fish had significantly lower reproductive success than single-spawning fish of the same age, suggesting that repeat-spawning fish forego early reproduction to devote additional energy to continued survival. For single-spawning fish, we also found evidence for a fitness trade-off for age at spawning: older, larger males had higher reproductive success than younger, smaller males. For females, in contrast, we found that 3-year-old fish had the highest mean lifetime reproductive success despite the observation that 4- and 5-year-old fish were both longer and heavier. This phenomenon was explained by negative frequency-dependent selection: as 4- and 5-year-old fish decreased in frequency on the spawning grounds, their lifetime reproductive success became greater than that of the 3-year-old fish. Using a combination of mathematical and individual-based models parameterized with our empirical estimates, we demonstrate that both fitness trade-offs and negative frequency-dependent selection observed in the empirical data can theoretically maintain the diverse life history strategies found in this population.