There might be no more difficult task in sports than creating a list of the best MLB players of all time. There are nearly 150 years of baseball history to examine in order to pick out the greatest MLB players ever.
Debates like Bonds vs Ruth will always exist as will other comparisons between players of different generations when deciding the MLB GOAT.
Best MLB players of all time
In addition to comparing the best baseball players ever from different generations and eras, the other challenge of picking the top MLB players of all time is comparing pitchers with hitters. It’s almost impossible to put together a list of the greatest MLB players ever in a way that will satisfy everyone.
That being said, we tried our best to create the ultimate ranking of the 25 best MLB players of all time.
25. Albert Pujols
During his long career, Pujols was named an all-star 10 times and an MVP three times. Few players in the modern era have shown his combination of power and average, which is why Pujols will finish his career with well over 3,000 hits and close to 700 home runs.
24. George Brett
Even if George Brett’s name doesn’t immediately come to mind among the all-time legends, the numbers say otherwise. He still ranks among the top-20 all-time in hits, second among third basemen.
Brett is also one of five players in baseball history with at least 300 home runs, 3,000 hits, and a .300 career batting average. He also won three batting titles, MVP in 1980, and was an all-star in 13 straight seasons, which is more than enough to put him on this list.
23. Rickey Henderson
It’s impossible to have a list of the best MLB players of all time without the greatest leadoff hitter of all time. Rickey Henderson’s speed was an absolute game-changer and his knack for stealing bases is a skill that’s never been matched in baseball history.
He is MLB’s all-time leader in both runs and stolen bases, as well as the single-season stolen base king. But Henderson also deserves credit for his glove and his power. After all, he’s the all-time leader in leadoff home runs and covered plenty of ground in the outfield with his speed. In short, Henderson was one of the most uniquely talented players in MLB history and should always be considered among the best ever.
22. Cy Young
There’s no way we could leave the all-time wins leader off a list of the greatest MLB players ever.
In an era before hard-throwing pitchers were a dime a dozen, Cy Young was one of the hardest-throwing pitchers around. But even with his high velocity, he still pitched in parts of 22 seasons.
While that gave him time to rack up 511 wins, Young still averaged over 23 wins per season, a record which is unbreakable. In addition to all of those wins, Young also won the Triple Crown one year and pitched three no-hitters, including a perfect game.
21. Ichiro Suzuki
It’s amazing to think what Ichiro Suzuki could have done if he had come to the majors earlier. His pro career in Japan began in 1992, yet he didn’t join the Mariners until 2001.
Of course, when he got to the big leagues, he won Rookie of the Year and MVP in the same season. That amazing season also included a batting title, a Silver Slugger, and began a stretch of 10 straight Gold Glove Awards and 10 straight all-star selections.
Ichiro still holds the record for most hits in a single season and managed to amass over 3,000 career hits in the majors while batting .311 despite not coming to the majors until age 27. Even if we ignore everything he accomplished in Japan, Ichiro is surely among the best players in MLB history.
20. Mike Trout
Even if his career is barely half over, Mike Trout has still done enough to be one of the best MLB players of all time. After all, there is little doubt that he’ll go down as the best player of his generation.
Over his first 11 seasons, Trout has been an all-star every year but his rookie season and has already won three MVPs and eight Silver Sluggers. He’s well on his way to racking up over 500 home runs and 3,000 hits while batting over .300. In a few years, he’ll be a little higher up, but Trout is already among the 25 best players ever.
19. Cal Ripken Jr.
How could we possibly leave baseball’s Iron Man off a list of the best MLB players of all time?
Part of what makes baseball such a tough game is being able to play every day. Cal Ripken holds an unbreakable record of 2,632 consecutive games played. But it’s not just that he was in the lineup every day.
Ripken was an all-star in 19 straight seasons, winning eight Silver Slugger Awards and two MVPs during his career. He was also a Gold Glover twice, solidifying himself as one of the greatest shortstops ever. Ultimately, Ripken would earn 98.53% of the Hall of Fame votes in his first year on the ballot, which says a lot about the amount of respect he earned during his career.
18. Randy Johnson
In addition to being one of the tallest players to have played in the majors, the Big Unit is also one of the greatest MLB players ever. Once he learned to control his triple-digit fastball and devastating slider, there was no stopping him.
Thanks to his size, Randy Johnson was one of the most intimidating pitchers to ever step on a big-league mound. He would lead the majors in strikeouts on nine occasions and win five Cy Young awards, including a stretch of four in a row.
Perhaps the most impressive part of his career is that Johnson pitched a no-hitter in 1990 before his prime years but then a perfect game in 2004 during the back-half of his career, showing just how long he was one of the most dominant pitchers in baseball.
17. Ken Griffey Jr.
Among modern players, Ken Griffey Jr. surely deserves to be mentioned among the best MLB players of all time. As the son of a big leaguer, Griffey was a prodigy, playing his first season in the majors before his 20th birthday.
He had a sweet swing from the left side, allowing him to rack up 630 career home runs while also collecting over 2,700 hits. Griffey was a 13-time all-star, and it could have been more if injuries didn’t hinder the second half of his career.
He was also one of the finest defensive outfielders of his generation, winning a Gold Glove in 10 straight seasons from 1990 to 1999. During the 90s, he won seven Silver Slugger Awards and also earned MVP honors in 1997, solidifying his standing as one of the elite players of his generation.
16. Frank Robinson
As the only player to date to win MVP in both leagues, it’s a given that Frank Robinson is among the best MLB players of all time. At the time of his retirement after 21 seasons, Robinson ranked among the top-10 all-time in most offensive categories thanks to his 2,943 hits and 586 home runs.
Robinson won the Triple Crown in 1966, the same year he led the Orioles to the first of two World Series wins in a five-year span. It also says something about Robinson that his jersey has been retired by three different franchises.
15. Honus Wagner
Most baseball fans know Honus Wagner for having one of the rarest and most expensive baseball cards in existence. But the reason for that is that he was one heck of a player.
He was a speed demon, helping him earn the nickname of The Flying Dutchman. That speed helped Wagner to amass over 3,400 hits and a .329 batting average during his career, which explains why he was one of the first five members of the Hall of Fame.
It’s also best not to forget his 722 career stolen bases. Wagner won eight batting titles during his career (including four in a row from 1906 to 1909) and led the National League in stolen bases five times. More than a century after his career ended, few have matched some of Wagner’s accomplishments.
14. Greg Maddux
Greg Maddux is surely among the best pitchers of all time. He made a seamless transition from a power pitcher to a master control pitcher. He racked up 355 wins in his career and once won the Cy Young in four straight seasons while helping to lead one of the great dynasties in recent history.
But Maddux was more than a great pitcher, as evidenced by his 18 Gold Glove awards. He’s one of the best defensive players at his position in baseball history and could handle the bat better than most pitchers, which is why he deserves to be mentioned among the top players of all time and not just the best pitchers.
13. Pete Rose
Admittedly, it’s a little weird to have the all-time hit leader this far down on a list of the best MLB players of all time. However, compared to many of the other all-time greats, Pete Rose never hit for much power.
That being said, he was a 17-time all-star and a three-time batting champ who hit .303 in his career. Rose also has a Rookie of the Year Award, MVP, and two Gold Gloves on his resume. In a way, his absence from the Hall of Fame for betting on baseball hurts his standing. Obviously, his longevity is also impressive, as Rose played from 1963 to 1986. But that longevity is also the reason why he holds records for the most hits, games played, at-bats, and plate appearances in MLB history.
12. Joe DiMaggio
Joe DiMaggio’s legacy largely revolves around his record-setting 56-game hitting streak, but he was so much more than those 56 games.
He was an elite contact hitter throughout his career, winning two batting titles and batting .325 for his career. His knack for putting the ball in play and getting base hits helped to earn DiMaggio 13 all-star invitations and three MVP awards in a 13-year career.
Keep in mind that he didn’t play for three seasons during World War II. Otherwise, his career numbers might have been even more impressive. Of course, that didn’t stop DiMaggio from being a part of nine Yankees teams to win the World Series, making him one of the biggest winners in baseball history.
11. Mickey Mantle
Mantle won MVP honors three times, including once in back-to-back seasons. He also won the Triple Crown in 1956 during the only year he won the batting title.
Mantle is also one of the most clutch players and biggest winners in baseball history. He played in the World Series 12 times, helping the Yankees to seven championships during their glory days. He also holds the all-time records for home runs, RBIs, and total bases in World Series history.
10. Stan Musial
Stan Musial is certainly on the shortlist among the best pure hitters in baseball history. During his illustrious career that spanned more than two decades, Stan the Man won the batting title seven times and MVP three times.
His career ended with 3,630 hits and a .331 average, not to mention 475 home runs, averaging over 21 homers per season. Musial was a first-ballot Hall of Famer who remains tied with Hank Aaron and Willie Mays for the most All-Star Game appearances in MLB history.
9. Barry Bonds
Unfortunately, there’s no way to separate Barry Bonds from his link to PEDs. But it’s also impossible not to consider him one of the best baseball players ever. During his days as a skinny kid with the Pirates, Bonds did more than enough to be a Hall of Famer.
Even if you forget the four straight MVPs he won from 2001 to 2004, Bonds won three MVPs within his first nine seasons in the league when there was almost no chance of him juicing.
Of course, he officially holds the record for the most career home runs, most home runs in a single season, most career walks, most walks in a single season, and the best on-base percentage and slugging percentage in a single season. There is unavoidable controversy but also undeniable talent when discussing Bonds’ place in baseball history.
8. Nolan Ryan
It’s shocking that Nolan Ryan never won a Cy Young because no pitcher in league history was better at making hitters feel inadequate, meaning he has to be included among the greatest MLB players ever.
Ryan could throw serious heat, frequently hitting triple digits on the radar gun. He combined that with a great curveball that helped him set the all-time record with 5,714 strikeouts. On 11 occasions, he led the league in strikeouts, yet he was only selected to eight All-Star Games.
Of course, Ryan also holds the all-time record with seven career no-hitters, not to mention 30 complete games in which he allowed two hits or less. At his best, Ryan could flat-out dominate hitters. Plus, for a guy who threw so hard, he was remarkably durable, pitching 26 full seasons in the big leagues.
7. Ted Williams
Without question, Ted Williams was a special talent and among the top MLB players of all time. He remains the most recent player to bat over .400 for a full season. Needless to say, he was the American League batting champ on six occasions while also hitting 521 career home runs.
The thing about Williams is that he served three years in the military during World War II, interrupting his career right after winning the Triple Crown in 1942. He returned in 1946 after the war and immediately won MVP honors before winning the Triple Crown again in 1947. As great as he was, Williams missed three seasons in what would have been some of the peak years of his career, likely preventing him from strong consideration as the best player ever.
6. Sandy Koufax
Sandy Koufax is arguably the best pitcher in baseball history, so there’s no question that he ranks highly on a list of the best MLB players of all time.
The lefty pitched four no-hitters during his career, including one perfect game. His curveball might be the best that the sport has ever seen, leading Koufax to win the Triple Crown three times, earning Cy Young honors on all three occasions, as well as MVP honors in 1963.
Koufax also led the majors in strikeouts on four occasions and was a part of the Dodgers winning four World Series championships, twice winning World Series MVP.
5. Lou Gehrig
There’s no way we could leave the Iron Horse off a list of the best MLB players of all time. Obviously, most remember Lou Gehrig for his incredible streak of consecutive games played, which was 2,130 and only ended because the disease that now bears his name forced him to retire early.
But Gehrig was also one heck of a player, which is why he was needed in the lineup every day. He was a part of six championship teams with the Yankees and won MVP honors twice. Yet, he didn’t win MVP in 1934 when he won the Triple Crown. If his career could have lasted a little longer, Gehrig would have hit 500 home runs and probably 3,000 hits, falling short with 2,721 career hits and 493 home runs.
But we’re also talking about a career .340 hitter and one of the best to ever wear pinstripes in the Bronx.
4. Ty Cobb
It’s safe to say that few players have played the game the way Ty Cobb played it. His style did make him a controversial figure and give him a bad reputation at times, but Cobb played the game hard and wanted to win. His career spanned from 1905 to 1928 with many anointing him as the best of his generation and among the top MLB players of all time.
He didn’t hit many home runs while playing in the dead-ball era, but he racked up 4,189 career hits, batting .366 for his career and winning 12 batting titles. His aggressive nature also helped him steal nearly 900 bases, leading the American League in stolen bags six times. Perhaps the one thing to know about Cobb is that when he was inducted into the Hall of Fame in 1936, he received a higher percentage of the vote than any other player until Tom Seaver in 1992.
3. Hank Aaron
There are some who still consider Hammerin’ Hank to be the true Home Run King, so there can be no denying that he’s one of the best MLB players of all time.
Even compared to some of the great home run hitters of modern times, Hank Aaron is hard to surpass. For instance, he hit at least 24 homers in 19 consecutive seasons and is one of two players to hit at least 30 home runs 15 times.
His career spanned 23 seasons and finished with him hitting 755 home runs. But Aaron was also a career .305 hitter with over 3,700 career hits. In fact, he won two batting titles (yet just one MVP) and was also a three-time Gold Glove winner. While he still holds the all-time MLB records for most RBIs, most total bases, and most extra-base hits, Aaron was far more than just a power hitter.
2. Willie Mays
The Say Hey Kid is easily one of the best MLB players of all time, not to mention one of the most balanced players in the history of the game, showcasing all five tools.
Willie Mays played 22 seasons in the majors, and that was after he had to begin his pro career in the Negro Leagues. In that long career, he smashed 660 home runs, batted .302, collected over 3,200 career hits, and amassed 338 stolen bases.
He also won 12 straight Gold Gloves and made that unforgettable catch in Game 1 of the 1954 World Series that may have been the turning point in that series that allowed the Giants to win it all. Mays won Rookie of the Year when he came to the big leagues in 1951 and won MVP honors twice, doing so 11 years apart, showing just how long he was one of the elite players in the game.
1. Babe Ruth
Over a century after his career began, Babe Ruth is still one of the greatest icons in American sports. He gets a leg up over the best baseball players ever because he excelled as both a pitcher and a hitter.
His early days were spent as a pitcher, only for Ruth to evolve into one of the greatest power hitters in baseball history. He won 94 games and posted a 2.28 ERA as a pitcher while hitting .342 with 714 career home runs, leading the American League in homers 12 times.
Ruth was a part of three championship teams with the Red Sox but was then famously traded to the Yankees, helping the Bronx Bombers win four World Series titles in 10 years while simultaneously sending the Red Sox into one of the most famous championship droughts/curses in sports history.
Between his accomplishments as a pitcher and a hitter and the fact that he was part of the inaugural Hall of Fame class, there is nobody more deserving of the top spot on our list than Ruth.