Power Rankings: Top 5 clubs show resilience

July 8th, 2024

As we near the All-Star break, we note that it has been a year of fluctuation and dynamism, with teams like the Royals, Guardians and Brewers surprising and the Blue Jays and Cubs disappointing. But it must be said: At the top, there hasn’t been much change at all.

There are five teams -- the Phillies, Orioles, Dodgers, Guardians and Yankees -- who changed slots a few times but have been remarkably resilient atop our rankings. How resilient? Those five teams, in some order, have been the top five teams in these rankings every single week since May 27. (That was the week the Braves dropped out of the top five, replaced by the Guardians.) Those teams have a combined 24 All-Stars among them. It’s not difficult to see why.

These rankings, as always, are compiled from rankings by MLB.com contributors whose names you can find at the bottom of this (and every) piece, but the words are mine. If you dislike the rankings, yell at all of us. But if you dislike the words, feel free to yell at me.

1. Phillies (previously: 1).
Season high: 1 | Season low: 8
When Bryce Harper and Kyle Schwarber both went on the injured list on the same day, it was obvious that someone was going to have to step it up. Fittingly, it has been their other big star who has done so: In the first eight games after Harper and Schwarber went out, Trea Turner hit .371 with four homers and 11 RBIs. Still: That Braves series didn’t go the way anyone wanted it to. Those guys will be happily, giddily welcomed back.

2. Orioles (previously: 2).
Season high: 1 | Season low: 5
It was a bit of a surprise that the Orioles only had three All-Stars named on Sunday night, and it’s fair to say some Orioles fans were irritated by it. But let’s keep it in perspective. It wasn’t long ago that the Orioles only got the one obligatory All-Star every season and were lucky to get that one; that happened five straight years from 2017-22. Those days are long, long behind them. In fact, I bet this is the last time they have as few as three for many years to come.

3. Dodgers (previously: 3).
Season high: 1 | Season low: 6
Christian Walker may have tried to lay claim to the King of Dodger Stadium title with all those homers he hit there this week, but it’s always worth remembering who really wears that crown. Shohei Ohtani has 13 homers in his last 24 games, which is the most in baseball by a wide margin. Second place during that time: Walker, who’s three whole homers behind him.

4. Guardians (previously: 4).
Season high: 3 | Season low: 21
On Thursday morning, Steven Kwan appeared, as if by magic, atop all your MLB leaderboards. That’s because, after missing nearly a month in May with a hamstring injury, Kwan at last caught up to the 3.1 plate appearances per team game requirement that qualified him for the batting title … and a whole bunch of other titles. That collective gasp you heard was a whole lot of baseball fans, at once, going, “Wait … Steven Kwan is hitting .364?” He may well end up being the biggest breakout star of the All-Star Game this year.

5. Yankees (previously: 5).
Season high: 1 | Season low: 7
Ben Rice is only the No. 12 Yankees prospect according to MLB Pipeline, but right now, he looks like the key to a Yankees offense that desperately needs to give Juan Soto and Aaron Judge some hope. His three homers on Saturday gave him a .325/.413/.700 slash line over his last 13 games. He sure looks like he’s going to be in that leadoff spot for a long time. He still has a long way to go to pass Brad Ausmus as the greatest player to go to Dartmouth in MLB history.

6. Brewers (previously: 6).
Season high: 5 | Season low: 19
If the Brewers end up making the playoffs this year, we know who they don’t want to play. Even with their win on Sunday, they’ve lost seven of their last eight vs. the Dodgers. That also makes 15 of their last 20, plus a sweep in the 2020 NL Wild Card series. The only bummer Sunday was that Dallas Keuchel, who threw 4 1/3 scoreless innings, didn’t pitch long enough to earn the victory. This leads to an odd stat: Three of the last four teams Keuchel has pitched for -- the Brewers, the Rangers and the Diamondbacks -- Keuchel hasn’t notched a single win, in eight starts total among them.

7. Braves (previously: 8).
Season high: 1 | Season low: 9
The Braves are eight games behind the Phillies in the NL East and, all told, are unlikely to extend their streak of six consecutive division titles. But you can see why they might be in the Phillies’ heads a little bit: They’ve only had two series against the Phils this year, and they’ve won both of them. The two teams still have seven games to go against each other.

8. Twins (previously: 10).
Season high: 8 | Season low: 23
Jose Miranda got a day off Sunday, and boy, did he deserve one. His run of getting hits in 12 consecutive at-bats tied the MLB record. We love Jose Miranda, but even we have to confess that his name isn’t nearly as fun as the three men who did that before him: Walt Dropo, Pinky Higgins and Johnny Kling. Dropo, Pinky and Kling. Those sound like Marx brothers, or Animaniacs.

9. Astros (previously: 14).
Season high: 6 | Season low: 26
In his last 16 games, Yordan Alvarez has five homers and a .351/.479/.702 slash line. Those 16 games do not include Sunday’s game, however, which he sat out after taking a fastball off the knee on Saturday. It’s just a bruise -- he didn’t even get imaging -- and that’s definitely a relief for the Astros: It’s not a coincidence that those 16 games were when the Astros made their mad dash toward the Mariners in the AL West standings.

10. Mariners (previously: 7).
Season high: 6 | Season low: 21
Julio Rodríguez’s quad injury that kept him out of Sunday’s game doesn’t seem to be that serious, and for the Mariners’ sake, it better not be. That 10-game division lead they had on June 18 -- not very long ago! -- is now down all the way to two games, and, as you might have noticed … our voters have now dropped them below those blasted Astros.

11. Red Sox (previously: 12).
Season high: 11 | Season low: 22
Rafael Devers got his 1,000th hit this week, which is an impressive number but even more so in context. He’s only the sixth Red Sox player to reach the 1,000 number before the age of 28. The other five? Xander Bogaerts and four Hall of Famers: Bobby Doerr, Jim Rice, Tris Speaker and Carl Yastrzemski.

12. Padres (previously: 9).
Season high: 9 | Season low: 21
The Padres have felt like such a dramatically different team than last year -- winning close games, coming through in clutch moments, heck, smiling a lot -- that it’s easy to forget they haven’t gotten much from their biggest free-agent signings. That may be changing: Manny Machado put up a .369/.400/.677 slash line in the last 16 games coming into Sunday, and Xander Bogaerts could be back from injury as soon as Friday.

13. Cardinals (previously: 13).
Season high: 13 | Season low: 27
Nolan Gorman leads the Cardinals in homers but was essentially an automatic out in June: He hit .141 and struck out in nearly half his at-bats. But he may have woken up over the last week, hitting a grand slam in a win over the Pirates and going 7-for-11 against the Nationals over the weekend. Gorman has been in the Majors for a while, but he’s still only 24 years old. There’s still a ton of room for growth here.

14. Royals (previously: 11).
Season high: 6 | Season low: 24
The Royals have the fourth-best home record in baseball, one of the main reasons they’ve had a breakthrough season after losing 106 games last year. But the reason they no longer hold one of the AL playoff spots is because of what has been happening on the road. They beat the Rockies on Sunday to avoid a sweep, but before that, they had lost five in a row on the road, and 11 of their last 14.

15. Mets (previously: 15).
Season high: 10 | Season low: 25
The Mets bullpen had an 8.37 ERA during the 10 games that Edwin Díaz was suspended for having sticky stuff -- not an official, technical term! -- on his hand, but in his first game back on Saturday, the 'pen looked like it is supposed to. The Mets bullpen put up 4 2/3 shutout innings in a win over the Pirates, including a 1-2-3 inning from Díaz.

16. Giants (previously: 19)
Season high: 12 | Season low: 23
Blake Snell is set to return for the Giants on Tuesday, and the Giants need him to stay there for a while this time: They’re down to just four healthy starters outside of him, including rookie Hayden Birdsong, who got his first win this week and has given the Giants a chance to win in all three of his starts. One might expect them both to be in this rotation moving forward -- the Giants certainly need them to be.

17. Diamondbacks (previously: 18).
Season high: 10 | Season low: 19
Closer Paul Sewald had a rough week, blowing two straight saves, to the Dodgers on July 2 and the Padres on July 5. The Diamondbacks say they aren’t worried, and they probably shouldn’t be: Those losses were the first two games in which Sewald had given up an earned run since his season debut on May 7.

18. Rangers (previously: 21).
Season high: 4 | Season low: 21
It always seems like the Rangers have run out of pitching, but yet they keep finding a way to get great work out of their rotation. On their homestand this week, they went 4-2 with a 2.08 starters' ERA, which helped them to sweep the Rays. They’re still six games under .500, but keep an eye on that Astros series next weekend heading into the All-Star Break: If this pitching keeps it up, they might have one more pre-break run in them. If not, though? Well, the defending champs could be sellers.

19. Reds (previously: 20).
Season high: 11 | Season low: 25
It has been stop-start, stop-start, one-step-forward two-steps-back for the Reds for more than a year now, and this week was the perfect example of the phenomenon. They pulled off a thrilling three-game sweep in The Bronx … and then followed it up by being swept by the Tigers. This week may be their last chance to make a run: They have a seven-game homestand against the Rockies and Marlins, the two worst teams in the National League.

20. Rays (previously: 16).
Season high: 9 | Season low: 24
The Rays continue to hang on the outskirts of the AL Wild Card race -- and hovering around .500 – despite having one of the worst run differentials in baseball. That they traded away Aaron Civale this week -- and are rumored to be a potential part of a lot more -- may speak to how much faith the front office has in them making a run down the stretch.

21. Pirates (previously: 17).
Season high: 9 | Season low: 25
One wonders how much more the Pirates are going to commit to this season. Despite all the joy that Paul Skenes has brought to this team (and to all of baseball), the rest of the Pirates’ rotation is falling apart: Jared Jones, Marco Gonzales and Quinn Priester are all on the injured list, and Bailey Falter left Saturday’s game with arm discomfort and has now joined them. It’s Skenes and Mitch Keller and a team with a collective .299 OBP. The Pirates are on the edges of the Wild Card race … but only on the edges. What’s going to happen next here?

22. Cubs (previously: 22).
Season high: 8 | Season low: 22
This season has been a massive disappointment for the Cubs, and foremost among their issues has been their offense: Since May 1, they’ve averaged only 3.7 runs a game, the third-worst mark in baseball (only the White Sox and Marlins have been worse). When you’re struggling that much, it certainly isn’t only one player’s fault, but there’s no question Dansby Swanson’s struggles have been emblematic: He is actually 1-for-his-last-26 at-bats and his OPS is a full 123 points lower than it was last year.

23. Nationals (previously: 24).
Season high: 20 | Season low: 27
If you’re looking for a glimpse of the Nationals’ lineup future, you sure saw it this weekend. In the first two games of their series against the Cardinals, the Nats scored 20 runs, and 16 of them were driven in by players 25 or younger: CJ Abrams, James Wood, Keibert Ruiz, Luis García Jr., Trey Lipscomb, Jacob Young and Nasim Nuñez. There’s a lot to look forward to in D.C. right now.

24. Tigers (previously: 25).
Season high: 7 | Season low: 24
Remember how excited everybody was about the Tigers right out of the gate this season? Much of that had to do with their season-opening sweep over the White Sox which, uh, looks a little less impressive now than it did then. It turns out, until Sunday’s win over the Reds, that White Sox sweep was their most recent series sweep, which is why everybody’s a lot less excited now.

25. Blue Jays (previously: 23).
Season high: 8 | Season low: 25
The disaster that has been the 2024 season for the Blue Jays sure looks likely to feature some trades here pretty soon, and the question, really, is how much flesh will the Blue Jays cut? Vlad Jr.? Bo Bichette? Kevin Gausman? That whole rotation could be in play. For all the frustrations of this season, this is a pivotal moment for this franchise moving forward: Can these pending trades construct the foundation of the next Blue Jays core?

26. Angels (previously: 26.)
Season high: 24 | Season low: 28
Congratulations to Kevin Pillar, who reached 10 years of service time this week, something only 7 percent of MLB players ever achieve. You had to wonder if Pillar would make it after the White Sox released him in April after he’d hit .160 for them, but he has been a bright spot for the Angels since showing up in Anaheim, putting up, in 42 games, the highest OPS+ of his career.

27. A’s (previously: 27).
Season high: 20 | Season low: 30
This is an avidly pro-Maddux power rankings, and we will not let a pitcher who throws a “Maddux” -- a shutout with fewer than 100 pitches -- go unremarked upon. Thus, congratulations to Joey Estes, who was magnificent in a 5-0 win over the Angels this week. His final line: 9 IP, 5 H, 4 K, 1 BB, 92 pitches. That’s a beautiful thing … and the A’s first complete-game shutout in three seasons.

28. Rockies (previously: 28).
Season high: 27 | Season low: 29
Brenton Doyle is exactly the sort of exciting young Rockies player that a franchise needs. He is off to a flamethrower of a start in July: Heading into Sunday, he was hitting .647 with four homers, nine RBIs, four walks and a stolen base. And remember: He already has a Gold Glove.

29. Marlins (previously: 28).
Season high: 23 | Season low: 30
I try to consider myself above puns in this space, but if you’re asking me to resist pointing out that Jake Burger, after homering in a game on International Burger Day in May, is 6-for-13 on the holiday, you are asking too much. I bring all this up because they gave away Burger King hats in Miami earlier this week, and Burger homered. Off a slider, no less.

30. White Sox (previously: 29).
Season high: 28 | Season low: 30
There was a time when I, and many others, thought, "Eloy Jiménez is going to be a 50-homer guy someday." He’s still only 27, but his staggering run of injuries has continued this year with both a left adductor strain and a left hamstring strain. He has never played more than 122 games in a season and he’s still slowly working his way back even now. “Sometimes,” he told MLB.com’s Scott Merkin, “it’s not fun when you get hurt.” If he can avoid injury for the next month, he could be added in a trade. But that might be a big ask.

Voters: Nathalie Alonso, Anthony Castrovince, Mark Feinsand, Alyson Footer, Doug Gausepohl, Will Leitch, Travis Miller, Arturo Pardavila, Mike Petriello, Manny Randhawa, Andrew Simon, David Venn.