Major League Baseball is America’s Pastime and has been for more than a century. From the time MLB was formed in 1876 to its global popularity today, the sport has treated fans to remarkable careers from the best baseball players of all time.
From Nolan Ryan and Bob Gibson to Mike Trout, Hank Aaron and Barry Bonds, some of the best MLB players ever have displayed their greatness in a variety of ways. Now it’s time to look back on MLB history with the 30 best baseball players of all time.
Related: MLB schedule 2024
30. Christy Mathewson, New York Giants
Christy Mathewson made his MLB debut as a 19-year-old in July 1900. Those lucky enough to witness him were seeing the start of a teenager blossom into becoming one of the best pitchers in MLB history. Mathewson, 6-foot-1, led the National League in strikeouts and ERA five times, while also leading the NL in wins four times. A member of the MLB All-Century Team, Mathewson also recorded two no-hitters in an unforgettable career.
Christy Mathewson career stats: 2.13 ERA, 2,507 strikeouts, 1.058 WHIP, 2.96 K/BB, 373 wins
Also Read: Best NFL players of all time
29. Johnny Bench, Cincinnati Reds
Johnny Bench is the best catcher in MLB history. Across his storied career with the Cincinnati Reds, Bench earned 14 All-Star Game selections, won 10 Gold Glove Awards, two NL MVP awards and twice brought a World Series title to Cincinnati. He brought stellar production at catcher at a time when that was rare, but he also matched it with phenomenal work behind the dish. All of that makes Bench the best catcher MLB has ever seen.
Johnny Bench career stats: .267/.342/.476, .817 OPS, 389 home runs, 1,376 RBI, 2,048 hits
Also Read: Best NBA players of all time
28. Roberto Clemente, Pittsburgh Pirates
Not only was Roberto Clemente one of the best MLB players ever, he was an even better person away from the field. The accomplishments at the plate – .834 OPS, 240 home runs, 1,305 RBI – speak for themselves, but there’s also a reason the MLB player who is most involved in his community and represents the sport in the best way is honored with the Roberto Clemente Award. Taken from this world far too soon, Clemente is an all-time legend in life and in baseball.
Roberto Clemente career stats: .317/.359/.475, .834 OPS, 240 home runs, 166 triples
27. Mike Schmidt, Philadelphia Phillies
Mike Schmidt, one of the best baseball players of all time, spent his entire 18-year career with the Philadelphia Phillies. He wore a Phillies uniform for over 2,400 games, earning 12 All-Star selections and three NL MVPs during his tenure. More important to him and Philadelphia than the personal accolades, Schmidt helped the Phillies win the 1980 World Series and his heroic efforts were recognized with World Series MVP.
Mike Schmidt career stats: .267/.380/.527, .908 OPS, 548 home runs, 1,595 RBI, 2,234 hits
Related: Philadelphia Phillies game today, Phillies schedule
26. Roger Hornsby
Roger Hornsby is one of the best players in St. Louis Cardinals history. From 1915-’26 with St. Louis, Hornsby posted a .359/.427/.568 slash line with a .995 OPS, 118 steals and 193 home runs in 13 steals. He was also a triples machine, recording 143 in his time with the Cardinals alone. Horsnby also won the Triple Crown twice, earned NL MVP in another two seasons and was a seven-time NL batting champion. Plus, he won the World Series in 1926.
Roger Hornsby career stats: .358/.434/.577, 1.010 OPS, 301 home runs, 135 steals, 169 triples
Related: MLB stat leaders 2024
25. Bob Gibson, St. Louis Cardinals
Bob Gibson was simply electric on the mound for the St. Louis Cardinals. He is just one of 19 players in the history of baseball with at least 3,000 strikeouts. He’s also part of an even more exclusive club, joining Pedro Martinez, Walter Johnson and Tom Seaver as the only pitchers with 3,000 strikeouts and a sub-3 ERA. If all of that isn’t a strong enough resume to be considered one of the best baseball players of all time, Gibson is also a two-time World Series champion with a career 1.89 ERA in the playoffs (81 innings).
Bob Gibson career stats: 2.91 ERA, 3,117 strikeouts, 1.19 WHIP, 251 wins
Related: Longest baseball games ever
24. Tom Seaver, New York Mets
Tom Seaver, aka Tom Terrific, is one of the best MLB players ever and is responsible for a generation of New York Mets fans having memories they’ll cherish forever. While Seaver won just a single World Series in his career, he earned 12 All-Star selections and won three NL Cy Young Awards during his career. Seaver received 98.84% of Hall of Fame voters as a first-ballot inductee, has the sixth-most strikeouts ever and is tied with Nolan Ryan for shutouts (61).
Related: New York Mets schedule 2024
23. Josh Gibson, catcher
Josh Gibson never got the opportunity he earned to play in the major leagues, but he is still one of the best baseball players of all time. In his career, Gibson posted a batting average that rivaled the best hitters in MLB history (Ty Cobb, .366) and many of his peers believed he was just as good as Babe Ruth. While Gibson’s numbers in the Negro Leagues aren’t often held in the same regard as the MLB career leaders, those who chronicled Gibson’s career all agree he is one of the best baseball players to ever live.
22. Alex Rodriguez, New York Yankees and Seattle Mariners
While Alex Rodriguez might be one of the most hated baseball players ever, he must still also be recognized as one of the all-time greats. A three-time AL MVP, Rodriguez earned 14 All-Star selections in his career and fell just four home runs shy of the exclusive 3000/700/200 club. Steroids are an undeniable part of Rodriguez’s legacy, but he still has the fourth-most RBIs (2,086) in the history of baseball.
Alex Rodriguez career stats: 696 home runs, 3,115 hits, 2,086 RBI, .295 batting average
21. Frank Robinson, Cincinnati Reds and Baltimore Orioles
Nicknamed “The Judge”, Frank Robinson delivered absolute pain to baseballs and put fear into pitchers’ eyes for two decades. Signed by the Cincinnati Reds to a $3,500 contract in 1953, Robinson would only become one of the best outfielders of all time. A 14-time All-Star selection with a Triple Crown (1966), and all three MVP awards (1961 AL MVP, 1966 NL MVP and 1966 World Series MVP), he is an all-time great. Robinson also was the first Black manager in MLB history.
Frank Robinson stats: 586 home runs,1,812 RBIs, 528 doubles, .926 OPS, 154 OPS+
Related: Best MLB team of all time
20. Albert Pujols, St. Louis Cardinals and Los Angeles Angels
Albert Pujols finished his career with the St. Louis Cardinals and he’s a rare example of a final season elevating one of the best baseball players of all time. The 2022 campaign allowed Pujols to reach 700 career home runs, an achievement the future Hall of Famer certainly earned. A two-time World Series champion and three-time NL MVP, Pujols retired with the second-most RBIs (2,218) and the fifth-most doubles (686) in baseball history.
Albert Pujols stats: 703 home runs, 2,218 RBI, .396/.374/.544, .918 OPS, 3,384 hits
Related: Highest-paid MLB players
19. Joe DiMaggio, New York Yankees
Few MLB history ever hit like Joe DiMaggio. The New York Yankees centerfielder spent his entire career in pinstripes and he made them all memorable. A 13-time All-Star and nine-time World Series champion with three AL MVP awards, voting him onto the MLB All-Century Team was easy. The longest hitting streak in MLB history, 56 games, belongs to DiMaggio and it’s no surprise many viewed him as one of the best Yankees ever, including Marilyn Monroe.
Joe DiMaggio stats: 2,214 hits, 131 triples, 361 home runs, 1,537 RBIs, .977 OPS, 155 OPS+
18. Roger Clemens, Boston Red Sox and New York Yankees
As we mentioned from the start, the issues that prevented Hall of Fame voters from honoring some of the best MLB players ever from enshrinement aren’t an issue for us. The Rocket is a seven-time Cy Young Award winner, which should tell you everything about his dominance. He won two World Series rings with the Yankees, finished as the MLB ERA leader seven times and he holds the MLB record for 20-strikeout games in 9 innings (twice). If you’re looking for the best starting pitchers ever, Clemens is squarely near the top of the list.
Roger Clemens stats: 354-184 record, 3.12 ERA, 4,672 strikeouts, 1.17 WHIP, 7.7 H/9, 2.96 K/BB
Related: Fastest pitches in MLB history
17. Rickey Henderson, Oakland Athletics
Rickey Henderson might be one of the most underrated players in MLB history when it comes to discussion of the all-time greats. MLB is largely past its days of players stealing 70-plus bases, something Henderson did seven times in his career. He is the all-time leader in steals (1,406) and to put that number in perspective, he swiped more bags than Joe Morgan (689) and Kenny Lofton (622) combined. A 10-time All-Star selection and the all-time leader in runs scored (2,295) and lead-off home runs (81), no one is ever touching Henderson’s single-season or career records.
Rickey Henderson stats: 3,055 hits, 297 home runs, 2,190 walks, 2,295 runs, .820 OPS, 127 OPS+
Related: Fastest MLB players
16. Greg Maddux, Chicago Cubs and Atlanta Braves
Greg Maddux, aka “Mad Dog”, delivered a four-year stretch as we’ve rarely seen. The 6-foot righty won four consecutive NL Cy Young Awards, combining for a 1.98 ERA and 0.953 WHIP across 946.2 innings from 1992-’95. He also played his position like no other, winning the Gold Glove Award 18 times. If all of that isn’t enough, the baseball world named a shutout under 100 pitches the ‘Maddux’. If you’re building an all-time MLB rotation, Maddux is in it.
Greg Maddux stats: 355-227, 3.16 ERA, 3,371 strikeouts, 1.14 WHIP, 6.1 K/9, 3.37 K/BB
Related: MLB mock draft 2024
15. Honus Wagner, Louisville Colonels and Pittsburgh Pirates
Incredibly, the Honus Wagner baseball card is even more historic than one of the best baseball players of all time. Wagner dominated the game like few others since its creation. Nicknamed “The Flying Dutchman”, he is widely considered the best shortstop in MLB history.
Honus Wagner stats: 3,420 hits, 252 triples, 101 home runs, 1,732 RBIs, 723 steals, .858 OPS
Related: Longest hitting streak ever
14. Mike Trout, Los Angeles Angels
Mike Trout is the best MLB player of his generation and he might’ve been even higher if the Los Angeles Angels ever built a playoff-caliber team around him. Drafted 25th overall in the 2009 MLB Draft, Trout struggled in his first 40 games (.220 BA, 89 OPS+). Everything clicked for him after that. Trout delivered the best rookie season in MLB history (168 OPS+, 49 steals, 30 home runs) and finished second in MVP voting. He’s credited with the best WAR in a season (10.5, 2012) and earned a spot in the Hall of Fame before he even turned 30. It’s just a shame injuries and a terrible Angels’ organization prevented him from achieving even more fame and recognition.
Related: MLB MVP race 2024
13. Randy Johnson, Seattle Mariners and Arizona Diamondbacks
“The Big Unit” struck fear into a batter the moment he hit the mound. At 6-foot-10 with a fastball that literally destroyed a bird mid-flight, hitters feared him for a reason. Johnson won five Cy Young Awards, a World Series MVP and led MLB in strikeouts nine times. Incredibly, he got better with age. From ages 29-44 (1993-2008), Johnson compiled a 3.08 ERA with a 1.1 WHIP, 11.1 K/0 and 4.19 K/BB. Just an incredible hurler and definitively one of the best pitchers ever. Since retiring, Johnson has become a very successful photographer.
Randy Johnson stats: 303-166, 3.29 ERA, 4,875 strikeouts, 1.17 WHIP, 10.6 K/9, 3.26 K/BB
Related: MLB stadium rankings
12. Ken Griffey Jr., Seattle Mariners and Cincinnati Reds
The Seattle Mariners knew they were getting a star with the No. 1 pick in the 1987 MLB Draft and Ken Griffey Jr. still blew past the wildest expectations. “The Kid” had the sweetest swing in baseball and it made him a 13x All-Star selection and 7x Silver Slugger Award winner. What made Griffey Jr. one of the most beloved MLB players ever is his enthusiasm for the game and the unmatched effort he played with. That same effort resulted in injuries that kept him from reaching 3,000 hits and reaching 700 home runs, but you know he wouldn’t change a thing.
Ken Griffey Jr stats: 2,781 hits, 630 home runs, 1,836 RBIs, 184 steals, .907 OPS, 136 OPS+
Related: World Series odds 2024
11. Pedro Martinez, Boston Red Sox and New York Mets
A 5-foot-11 pitcher isn’t supposed to be this dominant. When compiling our list of the best MLB players ever, though, Martinez earned his placement right near the top. Longevity is important and that’s one thing that prevents Martinez from being even higher. However, the two-year stretch from 1999-2000 is arguably the best ever by a pitcher (1.90 ERA, 597 strikeouts, 8.65 K/BB in 430.1 innings). Because of it, we’re willing to call him the best pitcher ever in the Modern era.
Pedro Martinez stats: 219-100. 2.93 ERA, 3,153 strikeouts, 1.05 WHIP, 10.0 K/0, 4.15 K/BB
Related: Boston Red Sox schedule 2024
10. Mickey Mantle, New York Yankees
Mickey Mantle, nicknamed “The Commerce Comet”, served as the face of the New York Yankees dynasty. He is arguably the most accomplished player in MLB history, a seven-time World Series champion and a 20-time All-Star selection. He could slug home runs with the best of them, serving as the AL leader in home runs four times (1955, ’56, ’58, 1960) and won the 1956 Triple Crown. He was also clutch in the World Series, drilling 18 home runs.
Mickey Mantle stats: 2,415 hits, 536 home runs, 1,509 RBIs, 153 steals, .977 OPS, 172 OPS+
Related: New York Yankees schedule 2024
9. Walter Johnson, Washington Senators
The debate over who is the best pitcher ever features a lot of hurlers from the past 40 years. That’s why Walter Johnson, who threw his last pitch in 1927, stands out. He simply played in a different era, pitch counts and managing innings weren’t a thing. It’s why he holds the record for most career shutouts (110), 20 more than the second-closest hurler. While his velocity wouldn’t seem like much today, he was certainly viewed as the equivalent of a Jacob deGrom during his era.
Walter Johnson stats: 417-279, 2.17 ERA, 3,509 strikeouts, 1.06 WHIP, 5.3 K/9, 2.57 K/BB
Related: Longest home run ever
8. Stan Musial, St. Louis Cardinals
Stan the Man could do anything he wanted with a baseball bat. The greatest St. Louis Cardinals player ever hit almost everything for nearly two decades, posting a .300-plus batting average every season from 1941 to 1958. He ranks third all-time in runs produced, trailing Barry Bonds and Babe Ruth. He earned 24 All-Star selections, won seven NL batting titles and finished with three World Series rings. There’s no question he belongs in the lineup of best MLB players ever.
Stan Musial stats: 3,630 hits, 475 home runs, 1,951 RBIs, .976 OPS, 159 OPS+
Related: MLB trade rumors
7. Ted Williams, Boston Red Sox
Is Ted Williams the greatest pure hitter who ever lived? He’s certainly the best player in Boston Red Sox history. If you want to know how special he was, Williams’ book “The Science of Hitting” is still recommended reading for MLB players today. He spent his entire MLB career with the Red Sox, then got drafted for World War II, before returning to baseball. The all-time leader in OBP (.482), Williams slugged a .328/.458/.584 line as a 38-year-old. The total stats would be even higher if not for three years in the military.
Ted Williams stats: 2,654 hits, 521 home runs, 1,839 RBIs, 1.116 OPS, 191 OPS+
Related: 2024 MLB Draft order, top prospects
6. Lou Gehrig, New York Yankees
The “Iron Horse” didn’t get to further cement his status as one of the best baseball players of all time because of ALS. However, everything he did before that and his iconic speech are more than enough. A six-time World Series champion and a member of the Major League Baseball All-Time Team, Gehrig’s most consecutive games MLB played streak (2,130) is likely never broken by Cal Ripken, Jr. if not for ALS. Paired with Babe Ruth, Gehrig’s 149 RBI per 162-game average is one of the highest in MLB history and his stats in 17 years are absurd.
Lou Gehrig stats: 2,721 hits, 493 home runs, 1,995 RBIs, 102 steals, 1.080 OPS, 189 OPS+
Related: MLB standings
5. Ty Cobb, Detroit Tigers
Nicknamed “The Georgia Peach”, Ty Cobb was a hitting machine. He holds the MLB record for batting average, ranks second on the all-time hit list (4,189) and posted a .400 batting average in consecutive seasons (1911-’12). MLB players racked up hits during Cobb’s era, but he was king with the most batting titles ever (12).
Ty Cobb stats: 4,189 hits, 117 home runs, 1,944 RBIs, 897 steals, .366 BA, .944 OPS, 168 OPS+
4. Barry Bonds, Pittsburgh Pirates and San Francisco Giants
Barry Bonds paid the price for steroid allegations, being kept out of the Hall of Fame and being blackballed from MLB after an age-42 season that saw him hit 28 home runs with a 1.045 OPS. If he isn’t essentially forced to retire, there is no doubt Bonds chases 800 home runs and eclipses the 3,000-hit and 2,000-RBI marks. He also holds the record for most intentional walks (688) and career walks (2,558), plus he’s the only player in MLB history with 500 steals and 500 home runs.
Barry Bonds stats: 2,935 hits, 762 home runs, 1,996 RBIs, 514 stolen bases, 1.051 OPS, 182 OPS+
Related: Latest MLB news
3. Hank Aaron, Atlanta Braves
Recognized by many as the true home run king, Hank Aaron hit baseballs out like no one saw before him. After playing in the Negro League, he made his MLB debut in March 1954 and hit 13 home runs in his first season, slashing .280/.322/.447. After that, he was the best player in MLB.
Hank Aaron stats: 3,771 hits, 755 home runs, 2,297 RBIs, 240 steals, .928 OPS, 155 OPS+
Aaron is atop the MLB record books with the most career RBIs (2,297) and he holds the all-time record for total bases (6,856). He deserves to be called the home run king, especially because of the era he played in. One thing is for certain, Aaron is one of the best players in baseball history and his MLB record for All-Star Game Appearances (25) adds to his case.
2. Willie Mays, San Francisco Giants
Willie Mays is most famous for “The Catch” and his spectacular play in the Polo Grounds deserves all of the recognition, that play also shows so much more. It showcases the athleticism and the hustle he played with for nearly 20 years with the Giants, delivering a style of play that helped him win 12 Gold Glove Awards and lead the NL in home runs and steals four times. He is unquestionably the best center fielder ever and if defense is valued highly, the greatest outfielder in MLB history.
Willie Mays stats: 3,293 hits, 660 home runs, 1,909 RBIs, 338 steals, .940 OPS, 155 OPS+
1. Babe Ruth, Boston Red Sox and New York Yankees
It should come as no surprise that “The Sultan of Swat” tops our list of the best baseball players of all time. He posted Hall of Fame-caliber numbers in his first five seasons with the Boston Red Sox (981 OPS, 190 OPS+. Then, on Dec. 26, 1919, Red Sox owner Harry Frazee traded Babe Ruth to the New York Yankees for $100,000 cash.
Babe Ruth stats (hitting): 2,873 hits, 714 home runs, 2,214 RBIs, 123 steals, 1.164 OPS, 206 OPS+
“The Bambino” would only go on to be the best MLB player ever. He joined the greatest dynasty in baseball history. Ruth won four World Series titles with the Yankees, giving him seven rings in his career and sending the Red Sox into decades of bad luck. Across 15 seasons in the Yankees lineup, Ruth posted an otherworldly 1.195 OPS, 209 OPS+ with 659 home runs and 1,978 RBIs.
Babe Ruth pitching stats: 94-46, 2.28 ERA, 488 strikeouts, 3.6 K/9, 1.11 K/BB
We still haven’t even gotten to his accomplishments on the mound. Across 10 seasons as a pitcher, Ruth posted a Cooperstown-worthy 2.28 ERA with 107 complete games, 17 shutouts and he threw pure filth on the mound in the World Series. He was Shohei Ohtani a century ahead of schedule. There’s no doubt that Babe Ruth is the greatest baseball player ever.