It's one of the most revered, yet controversial, records in all of sports. Officially, Barry Bonds hit more home runs than any player in the history of baseball, but many purists still consider Hank Aaron to be the true "Home Run King." Whether you are willing to overlook certain players' alleged involvement in steroids in the late '90s/early 2000s — which led to some astounding home run totals — is a personal decision, but there is no denying that every player on this list will forever hold a special place in baseball history. Here are the top 25 home-run hitters of all time.
1. Barry Bonds – 762 home runs
The controversial Bonds — who is not in the Hall of Fame — sits atop the list for most home runs in a career (762) and most in a single season (73 in 2001). The seven-time MVP is also the all-time leader in walks (2,558) and led the league in on-base percentage 10 times.
2. Hank Aaron – 755 home runs
Hammerin’ Hank hit 755 homers in his career without hitting 50 in a single season and leading MLB only four times. A model of consistency, the Alabama native smacked at least 40 bombs in a season eight times, with a high of 47 in 1971.
3. Babe Ruth – 714 home runs
The Sultan of Swat was by far the greatest power hitter of his era, leading the majors in home runs 12 times in a 14-year stretch from 1918-1931. Maybe the best stat to explain his dominance: In 1920, his 54 home runs (then a single-season record) were more than the total for each of the other 15 teams in the major leagues.
4. Alex Rodriguez – 696 home runs
Another controversial figure on this list, A-Rod enjoyed an incredible mid-career run in which he averaged 46 home runs during a nine-year period from 1999-2007. He had 613 home runs at the conclusion of the 2010 season (while still only 35) but managed only 83 more due to injury and suspension.
5. Albert Pujols* – 677 home runs
The only active player on this list (Miguel Cabrera became the 28th member of the 500 home run club on Aug. 22), Pujols was designated for assignment by the Angels on May 6, but quickly signed with the Dodgers and has continued to add to his impressive total despite receiving limited playing time. Pujols burst on the scene with 37 home runs as a rookie with the Cardinals in 2001 and he proceeded to hit at least 40 six times in his first decade in the big leagues. Pujols passed Willie Mays for fifth place on the all-time list in style with his 60th career multi-home run game on Sept. 18, 2020.
6. Willie Mays – 660 home runs
Mays is recognized as one of the greatest all-around players in the history of the game. In addition to hitting 660 home runs, he stole 338 bases (while leading the league in four straight seasons, 1956-59), scored 2,062 runs and collected 3,283 hits.
7. Ken Griffey Jr. – 630 home runs
Few players have enjoyed a five-year run as successful as Griffey’s from 1996-2000, when he averaged 50 home runs and 137 RBIs while hitting .290 and slugging .604. He appeared destined to flirt with the all-time record but failed to hit 30 in a single season over his final six years in the majors.
8. Jim Thome — 612 home runs
Arguably the least well known of any player on this list, Thome was a potent power source for the Indians, Phillies and White Sox from the late 1990s through mid-2000s. He enjoyed a monster 2007 season in Cleveland, when he hit 52 home runs and led the league in slugging (.677) and OPS (1.122).
9. Sammy Sosa – 609 home runs
One of the players most associated with baseball’s steroid era of the late 1990s/early 2000s, Sosa averaged an incredible 58 home runs during a five-year stretch from 1998–2002 — highlighted by the 66 bombs he hit in ’98 while involved in a memorable chase with Mark McGwire.
10. Frank Robinson – 586 home runs
Robinson burst onto the baseball scene with 38 home runs and a league-high 122 runs scored as a 20-year-old rookie with the Reds in 1956. He continued to be one of the game’s top power hitters for the next 15 years, though he led the league in homers only once (49 in 1966).
11. Mark McGwire – 583 home runs
McGwire’s home run heroics will never be fully appreciated by most baseball enthusiasts due to his alleged involvement with steroids, but his numbers are absolutely incredible. He broke Roger Maris’ single-season mark with 70 home runs in 1998 and followed up with 65 the next season. He hit at least 58 home runs three times.
12. Harmon Killebrew – 573 home runs
A classic slugger who struck out a ton and never hit for a high average, Killebrew clubbed at least 40 home runs eight times during a 12-year stretch in the late 1950s/early '60s. No player hit more home runs in the 1960s than Killer’s 393.
13. Rafael Palmeiro – 569 home runs
The third player on this list associated with the steroid era, Palmeiro averaged 41 home runs and 121 RBIs from 1995-2003 while with Baltimore (four years) and Texas (five years). He posted triple crown-like numbers in 1999, when hit .324 with 47 home runs and 148 RBIs in his first season in Texas.
14. Reggie Jackson – 563 home runs
Known for his postseason exploits, Mr. October was also productive from April through September, hitting 30-plus home runs seven times during a 21-year career that included stops with the A’s (twice), Orioles, Yankees, and Angels.
15. Manny Ramirez – 555 home runs
Ramirez was one of the most feared hitters in baseball during his prime. From 1998-2008, the enigmatic slugger hit .318 while averaging 38 home runs, 123 RBIs and 101 runs scored. He was a key cog in the Red Sox memorable 2004 World Series title team.
16. Mike Schmidt – 548 home runs
Considered by some to be the best third baseman of all time, Schmidt led the National League in home runs eight times during one 15-year stretch. He played his entire 18 years with the Phillies and was named NL MVP on three occasions.
17. David Ortiz – 541 home runs
A late bloomer, “Big Papi” didn’t emerge as a big-time power hitter until his late 20s when he was signed by Boston after an uneventful six years with the Twins. Ortiz led the league with 54 home runs in 2006 and will be remembered as one of the most popular Red Sox players of all time.
18. Mickey Mantle – 536 home runs
Few were better than the Mick in his prime — unfortunately, that prime lasted only about 10 years, due in large part to injury. He led the American League in home runs four times during a six-year stretch (1955-60) and hit a career-high 54 in 1961, when he finished in second to teammate Roger Maris (61).
19. Jimmie Foxx – 534 home runs
Foxx might be one of the most underappreciated sluggers of all time. He enjoyed arguably the greatest two-year run, in 1932-33, by any player not named Babe Ruth when he hit a combined 106 home runs with 332 RBIs while slugging an incredible .726 with a 1.186 OPS.
20t. Willie McCovey – 521 home runs
McCovey was one of the game’s elite first basemen throughout the 1960s. He led the league in home runs three times, highlighted by his MVP season of 1969 when he hit .320 with 45 home runs and 126 RBIs.
20t. Frank Thomas – 521 home runs
The Big Hurt hit at least 40 home runs five times yet never led the league in any season. He was far more than a slugger; he hit .301 in his 19-year career and was also an on-base machine, leading the league in walks and on-base percentage four times.
20t. Ted Williams – 521 home runs
Recognized by many as the best pure hitter of all time, Williams posted some incredible numbers throughout his first 10 seasons in the majors — even though he missed three seasons while in the military. Among his most impressive accomplishments: He hit for the Triple Crown twice; led the league in runs scored in five straight seasons (in which he played); led the league in walks eight times, and is the game’s all-time leader in on-base percentage (.482).
23t. Ernie Banks – 512 home runs
Banks was perhaps the best player in the game in the late 1950s, earning back-to-back NL MVP Awards in 1958 and ’59 while playing the demanding position of shortstop. He hit a total of 92 home runs with 272 RBIs during that stretch while leading the league in games played both seasons.
23t. Eddie Mathews – 512 home runs
Mathews was a consistent power hitter for the Milwaukee Braves in the '50s and early '60s, hitting at least 30 home runs nine straight seasons. He led the league twice, with 47 in 1953 and 46 in '59, and was a 12-time All-Star.
25. Mel Ott – 511 home runs
Only two players hit more home runs than Ott’s 308 in the 1930s — Jimmie Foxx (415) and Lou Gehrig (347). He led the league five times during that decade despite never hitting more than 38 in a season (though he did hit 42 in 1929).
*Active player, statistics through Aug. 22, 2021.