Ranking the Top 100 MLB Players of the 2021 Season
Ranking the Top 100 MLB Players of the 2021 Season

The World Series may not be over yet, but it's now been several weeks since the sun set on Major League Baseball's 2021 regular season.
Or more than enough time to ponder which 100 players were the best of '21.
In putting together our rankings, we started by averaging players' wins above replacement from Baseball Reference and FanGraphs. From there, we looked closer at both the quantity and the quality of players' work to really get a sense of the season's true standouts.
Which is to say, this list is really a 100-part hunch.
In the end, the weirdest part of this experience was not penciling Mike Trout's name in anywhere on the list for the first time since 2011. The Los Angeles Angels' three-time MVP was indeed dominant when he was healthy, but that was for just 36 games before a calf strain sidelined him for the rest of the season.
As for the guys who did make the cut, let's count 'em down.
100-91: Clase-Schwarber

100. RHP Emmanuel Clase, Cleveland Guardians
WAR Average: 2.5
When you can run a cutter up over 100 mph, you pretty much have to be good. Clase sure was as he held opposing batters to a .195 average and racked up a 1.29 ERA, tied for the eighth-lowest all-time for a pitcher with at least 70 relief appearances in a season.
99. LHP Josh Hader, Milwaukee Brewers
WAR Average: 3.0
The downside? He only pitched 58.2 innings in 60 appearances. But everything else about Hader's season was superb, up to and including his MLB-leading 45.5 strikeout percentage and microscopic 1.23 ERA. As per usual, he overpowered hitters with one of baseball's best fastballs.
98. CF Brandon Nimmo, New York Mets
WAR Average: 3.6
You might not think of Nimmo as a dangerous hitter, which, well, fair enough. Plus, staying healthy has generally been a challenge for him. Yet he gets on base as well as everyone, particularly this year as only he and three others topped a .400 OBP over at least 380 plate appearances.
97. RHP Cal Quantrill, Cleveland Guardians
WAR Average: 2.9
After beginning the year with a 1.88 ERA in 18 relief appearances, Quantrill made his way into Cleveland's rotation and put up a solid 3.12 ERA in 22 outings. Ultimately, only he and seven other pitchers logged at least 140 innings and a 150 ERA+.
96. RHP Anthony DeSclafani, San Francisco Giants
WAR Average: 3.6
It's kinda hard to describe how DeSclafani did it, as he only whiffed 8.2 batters per nine in innings and didn't have a standout ground-ball rate. Nevertheless, the "it" in this case is a 129 ERA+ over 167.2 innings. This was one of the better good seasons that nobody noticed.
95. RHP Lance McCullers Jr., Houston Astros
WAR Average: 3.4
McCullers' arsenal of pitches was nasty enough even before he added a wipeout slider, which joined his curveball and changeup in limiting opposing hitters to batting averages in the .100s. He also set new career bests with a 136 ERA+ and 162.1 innings before his forearm gave out in the playoffs.
94. RHP Joe Musgrove, San Diego Padres
WAR Average: 3.4
Characterized by its elite horizontal action, Musgrove's slider is one of the most aesthetically pleasing pitches in baseball. More to the point, he made good on his breakout potential by pitching a no-hitter and tallying a 122 ERA+ and 203 strikeouts over 181.1 innings.
93. RHP Marcus Stroman, New York Mets
WAR Average: 3.4
Though he came close, 2021 was yet another season in which he couldn't even strike out eight batters per nine innings. He nonetheless pitched to a 133 ERA+ over 179 innings, mainly through the help of an 84th-percentile walk rate and a characteristically steady diet (i.e., 50 percent) of ground balls.
92. 3B Jeimer Candelario, Detroit Tigers
WAR Average: 3.5
Sure, he only hit 16 home runs despite playing a typically high-power position. But he also co-led MLB with 42 doubles while getting on base at a .351 clip. Pretty good stuff amid a year in which Comerica Park played even more unfriendly to hitters than it usually does.
91. LF/1B Kyle Schwarber, Boston Red Sox
WAR Average: 3.2
Even though he missed six weeks with a hamstring strain, this was still easily the best offensive season of Schwarber's career. Walk and barrel rates in the 94th and 96th percentiles, respectively, paved his way to a career-high 148 OPS+ and 32 homers in 113 games.
90-81: Frazier-Votto

90. 2B Adam Frazier, San Diego Padres
WAR Average: 3.8
He wasn't so good after going from Pittsburgh to San Diego, where he hit just .267 in 57 games. Yet that only does so much to diminish the .305 average that he had for the season as a whole, and he also played a darn good second base (i.e., six outs above average) for both of his teams.
89. 3B Matt Chapman, Oakland Athletics
WAR Average: 3.5
It's now been two years since Chapman last resembled an MVP-caliber superstar. Yet as evidenced by his 17 outs above average, his defense remains on point. In spite of a modest 100 OPS+, he also saved face offensively by belting out 27 home runs.
88. 3B/OF Kris Bryant, San Francisco Giants
WAR Average: 3.5
He began 2021 better than he ended it, going from a 1.004 OPS through 53 games to a .730 OPS over his next 91 games. Even still, it's hard to quibble with a 124 OPS+, 25 home runs and solid defense at multiple positions.
87. CF Harrison Bader, St. Louis Cardinals
WAR Average: 3.7
Per his 14 outs above average, he was the best defensive outfielder in the National League this season. He therefore didn't need to hit much to justify his playing time, but he did anyway as he put up a 116 OPS+ with 16 home runs in 103 games.
86. 1B Jose Abreu, Chicago White Sox
WAR Average: 3.0
The reigning AL MVP wasn't quite as dangerous in 2021 as he was in 2020, particularly in the sense that he hit into a league-high 28 double plays. It's a good thing he was also his usual RBI machine self, driving in 117 runs in tandem with 30 home runs and a 125 OPS+.
85. 1B Yuli Gurriel, Houston Astros
WAR Average: 3.6
Amid his awful 2020 season, it was easy to wonder if the then-36-year-old Gurriel was starting to feel his age. But then he hit an AL-best .319 while striking out only 68 times in 605 plate appearances in 2021...so, apparently not.
84. 1B Pete Alonso, New York Mets
WAR Average: 3.7
He came into 2021 with things to prove after following his record-setting rookie season in 2019 with a step back in 2020. Mission accomplished, and not just to the extent that he put up a 134 OPS+ and 37 home runs. Per defensive runs saved and outs above average, he was also much better defensively.
83. RF Nick Castellanos, Cincinnati Reds
WAR Average: 3.8
The earth spins, the wind blows and Castellanos is downright bad in the field. But his bat has never overshadowed his glove more than it did this year, in which he set a new high with a 46.9 hard-hit percentage to also achieve new peaks with a 136 OPS+ and 34 home runs.
82. DH Yordan Alvarez, Houston Astros
WAR Average: 3.5
Following a year in which knee trouble limited him to just two games, Alvarez wasn't quite as dominant in 2021 as he had been as a rookie in 2019. But hey, when your exit velocity and hard-hit rate are both in the 97th percentile, a 136 OPS+ and 33 home runs are what you get.
81. 1B Joey Votto, Cincinnati Reds
WAR Average: 3.5
His 36 home runs this season were only two fewer than he hit throughout 2018, 2019 and 2020 combined. It was a legit power gain underscored by new personal highs for exit velocity, hard-hit rate and barrels, and it came paired with his best OBP (.375) since 2018.
80-71: Hernandez-India

80. RF Teoscar Hernandez, Toronto Blue Jays
WAR Average: 4.0
Though it was easy to lose sight of him in Toronto's loaded lineup, Hernandez successfully doubled down on his 2020 breakout in 2021. He notably lowered his strikeout rate to a reasonable 24.9 percent, allowing himself to more regularly make his brand of loud contact en route to a 133 OPS+ and 32 home runs.
79. RHP Chris Bassitt, Oakland Athletics
WAR Average: 3.7
What happened to him in August was beyond scary, but it's no excuse not to acknowledge that he was one of baseball's best hurlers as he pitched to a 3.06 ERA over 150 innings in his first 24 outings. Not bad for a guy who gets by with below average velocity and spin.
78. RHP Jose Berrios, Toronto Blue Jays
WAR Average: 3.7
Because he's the only pitcher who's topped 190 innings in three of the last four seasons, Berrios is probably underrated as a workhorse. But if that's because your impression of him is mainly as a guy with a nasty curveball, that's OK. If you also noticed his 122 ERA+ from this season, even better.
77. RHP Adam Wainwright, St. Louis Cardinals
WAR Average: 3.7
Because innings from starting pitchers were at a premium in 2021, Wainwright would get a spot on this list if his 206.1 innings were all he had going for him. But the 40-year-old also posted a 127 ERA+ despite striking out only 174 batters, which goes to show that pitching smarts die a lot harder than velocity.
76. SS Corey Seager, Los Angeles Dodgers
WAR Average: 3.7
This was a tough-luck year for Seager injury-wise, as he had to miss six weeks after breaking his hand on a hit-by-pitch in May. He nonetheless retained his status as one of baseball's best offensive shortstops by way of a 145 OPS+, so his upcoming free-agent payday is sure to be a big one.
75. OF Randy Arozarena, Tampa Bay Rays
WAR Average: 3.8
Even setting aside that he had yet another spectacular postseason, the bigger takeaway from Arozarena's 2021 is that it's proof he can sustain stardom over a full season. In spite of rough edges like an 11th-percentile strikeout rate and 10 caught-stealings, he posted a 131 OPS+ with 20 homers and 20 steals.
74. 2B Ozzie Albies, Atlanta
WAR Average: 3.9
After a wrist injury contributed to a down year in 2020, he was back to his usual stuff in 2021. As in, showcasing both power (30 homers) and speed (20) on offense with quality glovework on defense. More walks would be nice, but he's a star even as he is.
73. 1B Ty France, Seattle Mariners
WAR Average: 3.9
Here's a good candidate for "Best Player Nobody Knows About." France came out of nowhere (i.e., not actually France) to post a 133 OPS+ last year, and he kept right on raking with a 128 OPS+ in 2021. He also did well at first base, posting five defensive runs saved in place of injured Gold Glover Evan White.
72. 3B Justin Turner, Los Angeles Dodgers
WAR Average: 3.9
He just can't get over that pesky 27-home run barrier, yet this year's output was certainly a return to form after he went deep only four times in 2020. Plus, he's one of only three hitters who've topped 150 plate appearances and a 120 OPS+ annually since 2014.
71. 2B Jonathan India, Cincinnati Reds
WAR Average: 3.9
After a slow start, he was already starting to heat up when the Reds moved him into the leadoff spot on June 5. He then got on base at a .382 clip with 17 home runs in 105 games the rest of the way, cementing himself as one of the best No. 1 hitters in the league.
70-61: Suarez-Gallo

70. LHP Ranger Suarez, Philadelphia Phillies
WAR Average: 4.3
After posting a 1.12 ERA through 27 relief appearances, Suarez became a starter and kept right on rolling with a 1.51 ERA in 12 starts. His sinker proved to be one of the most valuable pitches in baseball and is indeed one of the chief explanations for why hitters had such a hard time barreling him up.
69. RHP Freddy Peralta, Milwaukee Brewers
WAR Average: 4.0
Peralta didn't get as much press as Milwaukee's other two aces, and justifiably so given that he broke down and ended with only 144.1 innings. But he was electric at his best, specifically showcasing an elite fastball as he tallied a 152 ERA+ and a 33.6 strikeout percentage.
68. LHP Trevor Rogers, Miami Marlins
WAR Average: 3.9
Though the personal matters he dealt with in August limited him to 25 starts, he still posted a 158 ERA+ while allowing just six home runs over 133 innings. He quietly has one of baseball's filthiest fastballs in addition to a devastating changeup, so his rise to acehood should only be beginning.
67. RHP Logan Webb, San Francisco Giants
WAR Average: 3.9
Even before he became Everyone's Favorite Ace in the playoffs, Webb was already running hot with a 2.40 ERA in 20 starts between May 11 and Oct. 3. His stuff just plain moves, and he's proficient at sequencing and locating, to boot. Hence how he mustered above-average marks for whiffs and exit velocity.
66. RHP Frankie Montas, Oakland Athletics
WAR Average: 3.9
Coming in the wake of his 80-game suspension for performance-enhancing drugs in 2019, the 5.60 ERA that Montas posted in 2020 made for a convenient storyline. But after putting more trust in his splitter and pitching to a 121 ERA+ and 207 strikeouts over 187 innings, it seems the real story is that Montas really is that good.
65. C Yasmani Grandal, Chicago White Sox
WAR Average: 3.7
OK, so, he played in only 93 games and hit just .240. Yet he also had more walks (87) than strikeouts (82) while hitting 23 home runs, so his 2021 season was a weird sort of masterclass in efficiency. The fact that he did all this as a primary catcher makes it even more impressive.
64. C Will Smith, Los Angeles Dodgers
WAR Average: 4.1
It's about time to start including Smith in discussions about the best catcher in baseball. He's done nothing but hit since debuting in 2019, this year racking up a 130 OPS+ and 25 home runs. He also gets strikes for his pitchers, specifically on the outer edges of the zone.
63. C Mike Zunino, Tampa Bay Rays
WAR Average: 4.1
The bad news is that Zunino had a whiff rate worthy of Joey Gallo this season. But when he did make contact, he barreled the ball like Shohei Ohtani to finish with a 138 OPS+ and 33 home runs. Throw in some of the game's best framing, and his imperfections were mostly inconsequential.
62. SS/2B Javier Baez, New York Mets
WAR Average: 4.1
As he now has 259 strikeouts against only 35 walks since the start of the 2020 season, teams will rightfully have questions about Baez's zone discipline in free agency. He's nonetheless coming off a fairly typical season marked by a 117 OPS+ and 31 homers as well as stylish glovework in the field.
61. RF Joey Gallo, New York Yankees
WAR Average: 4.1
To be sure, he was awful as he hit just .160 with 88 strikeouts in 58 games as a Yankee. Yet 2021 was still his finest season yet, as he compiled six outs above average in the outfield while buoying himself offensively with a whole bunch of walks (111) and home runs (38).
60-51: Betts-Morton

60. RF Mookie Betts, Los Angeles Dodgers
WAR Average: 4.1
Given that he came into 2021 as arguably the best all-around player in baseball, this season was undeniably a letdown for Betts as he battled a hip injury and just never really caught fire. But as down years go, a 128 OPS+, 23 homers and four defensive runs saved in right field make for a darn good one.
59. 3B Yoan Moncada, Chicago White Sox
WAR Average: 4.3
Even now, it's easy to look back and wonder why Moncada hasn't been able to recapture the all-around magic he had in 2019. But, hey, a .375 OBP automatically qualifies a hitter as a superhero these days. He also saved his best work (i.e., an .839 OPS) for when runners were in scoring position.
58. SS Willy Adames, Milwaukee Brewers
WAR Average: 4.2
When the Rays traded him to the Brewers in May, he was sitting on a 76 OPS+ and was clearly just keeping shortstop warm for Wander Franco anyway. But then he instantly became one of the NL's best players, wrapping up 2021 with a 135 OPS+ and 20 homers in 99 games for the Brewers.
57. 3B Rafael Devers, Boston Red Sox
WAR Average: 4.1
Because of his way-below-average defensive metrics, the Red Sox should be thinking about moving Devers off third base. There's nothing wrong with his bat, though. He had more hard-hit balls than any other left-handed hitter in 2021, providing a sturdy foundation for his 38 homers and 132 OPS+.
56. 3B Nolan Arenado, St. Louis Cardinals
WAR Average: 4.1
So, it turns out that Arenado can be a star outside of Denver after all. The pull-power that defined his offensive rise in Colorado translated just fine to St. Louis, where he tallied a 121 OPS+ and 34 homers. He was also his usual self at the hot corner to the tune of 10 outs above average.
55. RHP Luis Castillo, Cincinnati Reds
WAR Average: 4.2
Castillo was absolutely awful at the start of the year, getting shelled for a 7.22 ERA through his first 11 starts. The he turned things around with a 2.73 ERA over his next 22 outings, in which his trademark changeup came back to life and held batters to a .198 average.
54. LHP Max Fried, Atlanta
WAR Average: 4.3
After breaking out in 2020, it took a while for Fried to find it in 2021. Once he did, he ripped off a 1.93 ERA over 15 starts to finish the season. He jammed many hitters in that span, compiling a 55.8 ground-ball percentage and 86.9 mph in average exit velocity.
53. LHP Wade Miley, Cincinnati Reds
WAR Average: 4.3
Was Miley really, as his rWAR suggests, the fourth-best pitcher in the National League this season? Probably not, given that his 4.15 expected ERA was significantly higher than his actual 3.37 ERA. Yet he did stifle exit velocity with the best of 'em, so he showed at least one legit skill throughout his 163 innings.
52. RHP Lucas Giolito, Chicago White Sox
WAR Average: 4.2
He had some stinkers in 2021, giving up at least five runs in a start on four different occasions. But by the end of the year, he nonetheless had a 123 ERA+ and 201 strikeouts over 178.2 innings. As always, he owes much to one of the best changeups in the game.
51. RHP Charlie Morton, Atlanta
WAR Average: 4.4
Literally and figuratively, Morton got a tough break in Game 1 of the World Series. Yet he certainly had a season to be proud of. Armed with the most valuable curveball in the league, he struck out 216 batters and actually had a better xERA (3.32) than actual ERA (3.34) over his 185.2 innings.
50-41: Alcantara-deGrom

50. RHP Sandy Alcantara, Miami Marlins
WAR Average: 4.2
Don't be distracted by Alcantara's 98th-percentile fastball velocity. His unpredictability was also a factor in 2021, as increased changeup usage made it four pitches that he throws at least 20 percent of the time. After riding all this to a 131 ERA+ over 205.2 innings, he should have Cy Young votes coming his way.
49. CF/2B Enrique Hernandez, Boston Red Sox
WAR Average: 4.5
Though he was set back by a hamstring strain in May and COVID-19 in August, Hernandez still hit 20 home runs and even had a 59-game stretch in which he sustained a .946 OPS. He was also money in center field, getting better jumps than any other outfielder to rack up 14 defensive runs saved.
48. CF Starling Marte, Oakland Athletics
WAR Average: 5.1
Marte is still doing most of the things that made him a star with Pittsburgh in the mid-2010s. One change this year is that he drew walks in a career-high 8.2 percent of his plate appearances to go with his .308 average and MLB-high 47 steals, so he's frankly never been better even though he's now 33 years old.
47. SS Nicky Lopez, Kansas City Royals
WAR Average: 4.3
A guy with two homers? On a top-100 list? In the year 2021?! It shouldn't make any sense, but Lopez more than accounted for his lack of power by hitting .300, stealing 22 bases and leading all of MLB with 25 outs above average. If you're going to be a throwback-style middle infielder, this is how it's done.
46. 2B/SS Jorge Polanco, Minnesota Twins
WAR Average: 4.4
By the time Polanco got hot, the Twins had already fallen out of the AL Central race and the spotlight was therefore elsewhere. Even still, this is a place to honor the 28 homers and .888 OPS he racked up over his last 103 games. That's life when you're racking up pulled fly balls.
45. 2B/SS/1B Jake Cronenworth, San Diego Padres
WAR Average: 4.6
Though making contact (i.e., 97th percentile whiff rate) is Cronenworth's only outstanding skill, he's just plain good at baseball. You could see it this year in his 122 OPS+ as well as in the solid defense he played at multiple positions. He was best at second base, where he had five defensive runs saved.
44. SS Tim Anderson, Chicago White Sox
WAR Average: 4.5
As he's now hit over .300 in three straight seasons, there's no longer any question that Anderson can be consistent even though he swings at everything. He's also making strides on defense, committing 10 fewer errors over the last two seasons than he did in 2019 alone.
43. CF Byron Buxton, Minnesota Twins
WAR Average: 4.4
Should we really be including Buxton on this list even though injuries limited him to only 61 games? Perhaps not. But it's just plain hard to ignore a 171 OPS+, 19 home runs and nine stolen bases, not to mention 10 defensive runs saved and eight outs above average. When healthy, Buxton was a cheat code.
42. RF Ronald Acuna Jr., Atlanta
WAR Average: 3.9
Acuna didn't play after July 10 after tearing his ACL, yet it's worth remembering just how scorching he was through 82 games. He put a 155 OPS+ with 24 homers and 17 steals, with underlying metrics worthy of a custom-made character in a video game. If not for the injury, he'd have waltzed to the NL MVP.
41. RHP Jacob deGrom, New York Mets
WAR Average: 4.7
Alas, deGrom's elbow stopped him from pursuing Bob Gibson's modern ERA record. Yet his 1.08 ERA is still a modern low point for any pitcher with at least 90 innings in a season, and he sure did light up the radar gun while he was healthy. Of his 704 fastballs, he didn't throw a single one slower than 95 mph.
40-31: Mahle-Lowe

40. RHP Tyler Mahle, Cincinnati Reds
WAR Average: 4.6
Here's a guy who hasn't gotten nearly as much credit as he's deserved over the last two seasons. Mahle's last 43 appearances have yielded a 129 ERA+ over 227.2 innings, complete with 270 strikeouts and above-average peripherals pretty much across the board. His fastball, specifically, is a real dandy.
39. RHP Kevin Gausman, San Francisco Giants
WAR Average: 5.0
Gausman had a 1.73 ERA in the first half before falling back with a 4.42 ERA in the second half. He nonetheless had a career year with a 145 ERA+ and 227 strikeouts over 192 innings. Teams interested in him in free agency will be looking hard at that a splitter that might just be the best individual pitch in baseball.
38. LHP Julio Urias, Los Angeles Dodgers
WAR Average: 4.7
The Dodgers finally loosened Urias' leash this year, allowing him to reach 185.2 innings. Of course, he didn't give them much choice. Though his 20-3 record will only do so much to sway Cy Young Award voters, his curveball and changeup were on point as he held hitters to a .219 average and compiled a 138 ERA+.
37. 3B Manny Machado, San Diego Padres
WAR Average: 4.8
The lasting image of Machado's 2021 season will probably he him cussing out Fernando Tatis Jr. Which is a shame, because he had a heck of a year marked by a 131 OPS+, 28 homers and strong defensive metrics. He also excelled at maybe the single hardest thing to do in baseball: hit sliders.
36. 2B Jose Altuve, Houston Astros
WAR Average: 4.8
Just three years after winning the AL MVP, Altuve was just plain not good in 2020. This year, it was back to normal, as he ripped off a 127 OPS+ and tied his career high with 31 home runs. He also rated well for at least one defensive metric, checking into the top 10 among second basemen with five outs above average.
35. C Buster Posey, San Francisco Giants
WAR Average: 4.2
After enduring the worst year of his career in 2019, it turns out that Posey just needed a year off and some mechanical adjustments to find his stardom again. He hit .304 with a 140 OPS+ and 18 home runs, along with typically strong framing work behind the dish.
34. C Salvador Perez, Kansas City Royals
WAR Average: 4.4
If it seems like Perez should have been worth more WAR in 2021, the short version of the long story is that he was one-dimensional to a fault. That one dimension, though, involved crushing the ball to the tunes of a catcher-record 48 home runs and an MLB-high 121 runs batted in. So, not bad.
33. 1B Freddie Freeman, Atlanta
WAR Average: 4.6
Following a year in which he won the NL MVP on the strength of a superb .341/.462/.640 batting line, it was kind of a letdown that Freeman hit "only" .300/.393/.503 in 2021. Yet he was clutch when Atlanta needed him to be, posting a .930 OPS while playing sturdy defense after Acuna's injury on July 10.
32. 1B Max Muncy, Los Angeles Dodgers
WAR Average: 4.9
Few hitters were more disciplined than Muncy, whose chase rate was in the 99th percentile. He also set a new personal high by averaging 91.2 mph with his exit velocity, so he certainly earned both his 138 OPS+ and career-best 36 home runs. It's a bummer that he hurt his elbow at the worst possible time.
31. 2B Brandon Lowe, Tampa Bay Rays
WAR Average: 5.0
Lowe was hitting under .200 with nine homers as late as June 3. He then turned on the jets with a .962 OPS and 30 homers the rest of the way. Though he's not much of a defender, Lowe is also an underrated baserunner who's only been caught stealing twice with only one other out on the bases for his career.
30-21: Riley-Olson

30. 3B Austin Riley, Atlanta
WAR Average: 5.2
Riley conveniently got hot after Acuna went down, finishing with a .963 OPS and 19 home runs to boost his overall output to a 132 OPS+ and 33 homers. The real mystery of his season concerns the quality of his defense, which was well above average for DRS and but well below average for UZR and OAA.
29. SS Bo Bichette, Toronto Blue Jays
WAR Average: 5.5
As he led all defenders with 24 errors, it's fair to call Bichette's defense at shortstop sloppy. But he doesn't strike out as much as you'd expect from a guy with his swing rate, and he put both his power (29 homers) and speed (25 steals) to good use while also leading the AL with 191 hits.
28. SS Xander Bogaerts, Boston Red Sox
WAR Average: 5.1
As always, the caveat with Bogaerts is that he's not a good defensive shortstop. Per outs above average, he was indeed one of the worst this season. But the guy just plain hits, as he's now the only shortstop to do better than 200 plate appearances and a 125 OPS+ in each of the last four seasons.
27. RHP Nathan Eovaldi, Boston Red Sox
WAR Average: 5.1
For all the different pitches he threw and the many times that he lit up the radar gun, the most important number for Eovaldi this season was 1.7. Or how many batters he walked per nine innings to lead the league. Throw in the best health he's enjoyed in years, and you get a 126 ERA+ over 182.1 innings.
26. LHP Carlos Rodon, Chicago White Sox
WAR Average: 5.0
Even if his left shoulder eventually gave out, this was still the finest season of Rodon's career. A mechanical overhaul allowed him to dial up the velocity on his fastball, which ended up being the single most valuable pitch in baseball as he held hitters to a .189 average with 185 strikeouts in 132.2 innings.
25. RHP Lance Lynn, Chicago White Sox
WAR Average: 4.8
Lynn threw more than 90 percent fastballs this year, and yet he was far from predictable because of how he worked up, down and side to side with the different movements on his four-seamer, sinker and cutter. He actually had a lower xERA (2.59) than actual ERA (2.69) as he whiffed 176 batters in 157 innings.
24. RHP Gerrit Cole, New York Yankees
WAR Average: 5.5
Cole didn't deny having used Spider Tack, so it's no surprise that MLB's sticky-stuff enforcement coincided with him going from a 2.31 ERA to a 4.12 ERA. That he nonetheless finished with a 133 ERA+ and 243 strikeouts over 181.1 innings speaks to how his downfall was from untouchable to merely great.
23. RHP Brandon Woodruff, Milwaukee Brewers
WAR Average: 5.2
The fact that Woodruff's xERA (3.29) was higher than his actual ERA (2.56) indicates that he benefited from good luck throughout his 179.1 innings. It's just hard to discern the form of that good luck, as he struck out 211 and walked only 43 with above-average metrics nearly across the board.
22. 1B Paul Goldschmidt, St. Louis Cardinals
WAR Average: 5.6
Goldschmidt had an odd year in 2020, posting a .417 OBP but hitting only six homers. He was more like himself in 2021, dropping his OBP to .365 but turning his all-fields power back on to whack 31 long balls. Throw in ongoing quality on the bases and on defense, and he deserves the MVP votes he's going to get.
21. 1B Matt Olson, Oakland Athletics
WAR Average: 5.4
Olson did something that should be impossible in today's MLB, which is cut his strikeout percentage from 2020 (31.4) basically in half in 2021 (16.8). That plus his power and patience were his ticket to a 153 OPS+ and 39 home runs, and he also played his usual Gold Glove-caliber defense.
20-11: O'Neill-Turner

20. LF Tyler O'Neill, St. Louis Cardinals
WAR Average: 5.9
How do you overcome a 31.3 strikeout percentage? If you're Tyler O'Neill, basically by doing everything else well. A 97th-percentile barrel rate was the foundation for his 150 OPS+ and 34 home runs. And especially based on his 12 defensive runs saved, he's rightfully a finalist for his second straight Gold Glove.
19. CF Bryan Reynolds, Pittsburgh Pirates
WAR Average: 5.8
So, this Bryan Reynolds guy might be really good. He was about equally productive from the left (.911 OPS) and right (.915 OPS) sides of the plate in 2021, and he even had 11 outs above average in the outfield. He also specializes in the kind of good baserunning that, to paraphrase Yogi Berra, you can only observe by watching.
18. CF Cedric Mullins, Baltimore Orioles
WAR Average: 5.5
To play like a man unburdened, all Mullins needed to do was give up switch-hitting. He hit .291 with a 135 OPS+ and 30 each homers and steals, the latter of which came from his habit for pulling fly balls. Metrics offered differing takes on his defense, but it was elite if his 11 outs above average are to be believed.
17. RF Aaron Judge, New York Yankees
WAR Average: 5.7
It should stand out that Judge placed in the 100th percentile for both exit velocity and hard-hit rate this season. But then again, everyone knew he was capable of that. What was less certain was whether he could stay healthy, so it's no small thing that he played in 148 games. So even if neither his 149 OPS+ nor his 39 homers are career highs, this was arguably his best season yet.
16. RF Kyle Tucker, Houston Astros
WAR Average: 5.3
As of May 8, Tucker was struggling with just a .175/.242/.342 line and five homers. He proceeded to hit .329/.394/.620 with 25 bombs and 12 thefts the rest of the way. Considering that he also had 11 defensive runs saved in right field, he basically played like an MVP for five of the season's six months.
15. RHP Walker Buehler, Los Angeles Dodgers
WAR Average: 6.1
Buehler hit a wall as he posted a 5.40 ERA in September, yet this is still the most well-rounded season he's had in the majors. What he lost in his strikeout rate he made up for with pop-ups and other forms of soft contact, ultimately allowing for a more efficient path to a 165 ERA+ over 207.2 innings.
14. RHP Max Scherzer, Los Angeles Dodgers
WAR Average: 5.7
Though he's now 37 years old, Scherzer's twilight years are nowhere to be seen. He continued to operate with an elite contact rate in 2021, and he eventually led the league in walks and hits per nine innings. Between that and his 166 ERA+ and 236 strikeouts over 179.1 innings, he has a case for what would be his fourth Cy Young Award.
13. LHP Robbie Ray, Toronto Blue Jays
WAR Average: 5.3
How much better was Ray's control in 2021 than it was in 2020? Well, he walked only seven more batters despite pitching 139.1 more innings. That made it that much easier to tap into the sheer quality of his stuff, in particular his fastball and slider as he racked up AL-best marks with 248 strikeouts, a 2.84 ERA and 193.1 innings. He should have a Cy Young Award coming his way.
12. SS Brandon Crawford, San Francisco Giants
WAR Average: 5.8
A couple of years ago, Crawford sure looked like he was past his prime. Well, now he's 34 and coming off a career year marked by new highs with a 141 OPS+ and 24 homers. You can credit his mechanical adjustments for those numbers, though his 15 outs above average are really just a case of more of the same for the three-time Gold Glover.
11. SS/2B Trea Turner, Los Angeles Dodgers
WAR Average: 6.7
Turner had a postseason to forget, as he hit just .216 with just two extra-base hits. Yet his regular season was a different story entirely. He led MLB in average (.328) and the NL in total bases (319) and stolen bases (32). Given that he hadn't played the position since 2015, it's also no small thing that he was at least passable at second base for the Dodgers down the stretch.
10-1: Harper-Ohtani

10. RF Bryce Harper, Philadelphia Phillies
WAR Average: 6.3
Harper isn't much of a defender at this stage of his career, so it's a good thing he doesn't need to be. If anything, his metrics indicate that he's a better hitter now than he was in his unanimous MVP season in 2015. Courtesy of his league-best 1.044 OPS and 35 home runs, he might have another one of those coming his way soon.
9. SS Carlos Correa, Houston Astros
WAR Average: 6.5
There's a good chance that we'll soon be calling Correa a Gold Glover, as he's a finalist for one after leading all of MLB with 21 defensive runs saved. Though not his best, his 131 OPS+ and career-high 26 home runs also made 2021 one of his finer offensive seasons. Somebody pay the man.
8. SS Fernando Tatis Jr., San Diego Padres
WAR Average: 6.4
A season in which he had to play through a shoulder injury and moved off shortstop? It sounds like a disaster, but Tatis' 2021 campaign was anything but as he managed a 166 OPS+ with an NL-high 42 home runs and 25 stolen bases. Per usual, his raw power was his best asset to the tune of elite percentiles for exit velocity, hard-hit rate and barrels.
7. 3B Jose Ramirez, Cleveland Guardians
WAR Average: 6.5
This was another year in which Ramirez just sort of did his thing. As in, pull a whole bunch of fly balls to end up with 36 home runs while also balancing plentiful walks (72) with few strikeouts (87). Thus did he top a 140 OPS+ for the fourth time in five seasons. Plus, his 27 steals only sort of get at how this was perhaps his finest year on the bases.
6. RHP Zack Wheeler, Philadelphia Phillies
WAR Average: 7.5
The Phillies rolled the dice when they committed $118 million to Zack Wheeler in 2019. It's fair to say it's paid off. He now boasts a sub-3.00 ERA through 43 starts for the Phillies, especially doing little wrong amid a 2021 season in which he led the majors with 213.1 innings to go with a 150 ERA+. Between his 247 strikeouts and 99th-percentile exit velocity, he was just plain hard to hit.
5. RHP Corbin Burnes, Milwaukee Brewers
WAR Average: 6.6
OK, so, Burnes "only" logged 167 innings this season. Yet he also led MLB with a 2.43 ERA, and even that paled in comparison to his 2.01 xERA. He was simply good at everything, landing in the 92nd percentile or better for walk rate, strikeout rate and average exit velocity. They key? Baseball's nastiest and best cutter.
4. 2B Marcus Semien, Toronto Blue Jays
WAR Average: 6.9
From looking at his peripheral stats, you could make the case that Semien overperformed in 2021. Yet pulled fly balls solve a lot of problems, and he hit more of those than any other American Leaguer as he compiled a 133 OPS+ and 45 home runs. He's also rightfully a Gold Glove finalist even though this was his first year as a full-time second baseman. For the second time in three years, he has MVP votes coming.
3. 1B Vladimir Guerrero Jr., Toronto Blue Jays
WAR Average: 6.8
A rocket a day keeps the doctor away. That seemed to be Guerrero's motto throughout 2021, wherein he set a new single-season high with 274 batted balls of at least 95 mph. Those plus an 87th-percentile walk rate led him to MLB-high marks with 48 home runs and 363 total bases, as well as AL-leading figures in OBP and slugging. If you want a good comp, think peak Miguel Cabrera.
2. RF Juan Soto, Washington Nationals
WAR Average: 6.8
So, we can all agree that Soto is the best hitter in baseball, right? Because nobody's been better than him at not making outs over the last two seasons, as he followed his MLB-high .490 OBP in 2020 with another league-leading mark of .465 in 2021. Because he also hit 29 home runs and even tallied five outs above average in the field, the National League simply didn't have a better player than him this season.
1. DH/RHP Shohei Ohtani, Los Angeles Angels
WAR Average: 8.6
Even after having a few weeks to process it, the season that Ohtani had in 2021 still boggles the mind. He barreled the ball like Vladimir Guerrero Jr. and struck guys out at the same rate as Yu Darvish. On one side of the ball, he had a 158 OPS+ and 46 homers. On the other, a 141 ERA+ and 156 strikeouts. Move over, Bullet Rogan. The new best two-way player in baseball history is here.
Stats courtesy of Baseball Reference, FanGraphs and Baseball Savant.