The post-Barry Bonds turnaround for the San Francisco Giants was built on a foundation of great young pitching, but it was Buster Posey who powered the entire structure once he was installed as catcher. He has been like a nuclear reactor in that regard. The situation in Kansas City is very familiar, only their brand of sustainable energy is named Bobby Witt Jr.
The second overall pick of the 2019 draft debuted for the Royals in 2022 and has been nothing but great since then. He hit 20 home runs in that debut season, and in the three seasons since (2023, 2024, and 6+ weeks into 2025), he’s slashed .304/.357/.537 with 67 home runs in 1,613 PA, along with 90 doubles, 25 triples, and 96 stolen bases!
He has been the second-most valuable player in Major League Baseball over this same span (18.9 fWAR), trailing only Aaron Judge (20.0). He’s not a hitter of Shohei Ohtani’s pedigree (18.4), but he is a wiz at shortstop. A big chunk of his value comes from his defense at shortstop (+39.6 Defensive Runs Above Average, 2023-2025), but he’s also a superlative baserunner: 4th in MLB (2023-2025) with +15.2 FanGraphs’ Baserunning Runs Above Average . According to Statcast’s Baserunning Runs, he’s put up a +17 in his last three seasons and in his MLB is +24. He’s great at taking the extra base and the stolen base.
So, here we have a perfect baseball player: he hits the ball hard and often without striking out much, plays Gold Glove defense at a premium position (won it last year, in fact), is fast (100th percentile sprint speed) and steals lots of bases. He is the type of player that doesn’t come along very often. Giants fans got to experience that last decade with Posey. Like Posey’s championship days, would it surprise you to learn that the team around Bobby Witt Jr. is pretty good, too?
These 2025 Royals are a lot like their 2024 playoff team version in that they rely on pitching and defense. Bobby Witt & co. have scored the fourth-fewest runs in the sport (159), ahead of only the White Sox (157), Rockies (152), and Pirates (141) — yikes! But, their pitching has allowed the third-fewest (160). The Giants’ lineup is basically league average; the Royals’ lineup is 20% worse than that. In May, KC has averaged 3.65 runs/game. 2.22 in their last 9.
So, just how good is that pitching, really? They play in the same division as those Chicago White Sox, after all, and they’ve played the Rockies already, too, going 7-0 against both and outscoring them 36-13 (I really want to highlight that they’ve allowed just 4 runs to the White Sox in 4 games). Well, against the rest of their competition, they’re 19-22, but with about a 3.50 ERA (147 runs allowed in approximately 378 — I didn’t bother to check and see how many were earned and verify the exact innings amount). They don’t pitch down to their competition… but they also don’t really hit regardless of context.
That means Oracle Park could be enough of a homefield advantage, limiting the Royals’ limited offense even more while the Giants scratch out a run or two. While the Royals’ rotation has been good to great from top to bottom, it’s banged up right now, with Seth Lugo & Cole Ragans (a lefty) hitting the IL this weekend. The team signed 45-year old Rich Hill to a minor league deal just last week, so they’re aware that their pitching depth is thin. The Giants will see their most valuable starter at the moment (Kris Bubic), but the other slated starter is Michael Lorenzen, who hasn’t had much success against the Giants for his career (7.11 ERA in 25.1 IP).
On top of that, the Giants are 16-7 at home so far this season and swept a similar version of these Royals at the end of last season — recall that the Giants shut them out the final two games in the series and jeopardized their playoff chances. They’ve got a 108 wRC+ here in the month of May with Heliot Ramos (201 wRC+), Wilmer Flores (171), Willy Adames (126), Matt Chapman (119), and Mike Yastrzemski (106) all stepping up.
Series overview
Who: Kansas City Royals vs. San Francisco Giants
Where: Oracle Park | San Francisco, California
When: Monday & Tuesday at 6:45pm PT, Wednesday at 12:45pm PT
National broadcasts: MLB Network simulcast (Monday & Tuesday)
Projected starters
Monday: Kris Bubic (LHP 4-2, 1.66 ERA) vs. Robbie Ray (LHP 6-0, 3.04 ERA)
Tuesday: Michael Lorenzen (RHP 3-4, 3.76 ERA) vs. Hayden Birdsong (RHP 1-0, 2.31 ERA)
Wednesday: TBD vs. Logan Webb (RHP 5-3, 2.42 ERA)
Where they stand
Royals, 26-22 (4th in AL West), 159 RS / 160 RA | Last 10: 4-6
Giants, 28-19 (3rd in NL West), 222 RS / 175 RA | Last 10: 5-5
Royals to watch
Besides Bobby Witt Jr., obviously…
Maikel Garcia: He’s the next-most threatening hitter in the Royals’ lineup after Bobby Witt Jr. The 25-year old debuted in 2022 along with Witt but has basically been a valuable defender at third base who could hit a teeny tiny bit. 2025 is a coming out party, though, as he’s slashing 301/.371/.482 through his first 47 games (187 PA). From 2022-2024 he slashed .251/.301/.344. Importantly, he’s got 19 walks against just 28 strikeouts. A 10% walk rate against a 15% strikeout rate is elite and a big change from his major league career prior to this year (7% and 19%). He’s also been incredible on the road this season. Look at this split:
Home (26 G, 102 PA): .277/.327/.415, 10 XBH, 7 BB, 19 K
Away (21 G, 85 PA): .333/.424/.569, 9 XBH, 12 BB, 9 K
The big flaw in his game is that he gets caught stealing a lot. He leads the sport with 6 caught stealing in 16 SB attempts.
The Royals’ bullpen: It’s not nearly as good as the Giants’, but it’s not bad, either, with former Rockies pitcher Carlos Esteves in the closer role and Cal alum Lucas Erceg setting him up. So, the 8th and 9th are the danger zones. You can easily imagine the Royals blitzing the Giants to get an early lead and then frustrate the Giants’ lineup for 6+ innings before their bullpen gives Wilmer Flores & co. an opening.
Kris Bubic: This is a Bay Area kid through and through. Born in Cupertino. Went to Archbishop Mitty and then Stanford. He’s been dominant this season, with a 1.66 ERA in 54.1 IP. That’s backed up by a 2.68 FIP. Now, he only throws about 92-93, but that’s okay because he’s got a 5-pitch mix: four-seamer sweeper, changeup, slider, sinker. This is not quite like facing Jeffrey Springs again, but a Bay Area native motivated to pitch well in front of a home crowd and at a point in the season where he’s in full command of his pitches (0.49 ERA in 3 May starts) means this could be a very tough game one. Royals color commenter Rex Hudler calls him “Boobie.”
Giants to watch
Heliot Ramos: Should probably just keep an eye on him until you see multiple people declare that he’s officially in a slump. He has been the fourth-best hitter in the NL so far this month, trailing only Shohei Ohtani, Rafael Devers, and Freddie Freeman.
Hayden Birdsong: He has certainly earned this opportunity to take a rotation spot and this is, in theory, a solid matchup for him because of the limited nature of their lineup. But Witt Jr. alone is a strong enough ingredient that a mistake to him and a couple of others could give Kansas City the crooked number they need to put the game away. Birdsong is a strikeout-flyball pitcher. The Royals have the highest flyball rate of any lineup in the American League (43.4%), second only to the Giants (43.7%) in MLB. At the same time, the Royals have the lowest HR/FB rate (5.4%), so this might be a situation where that flyball tendency won’t hurt him — unless he’s really off his game.
Jung Hoo Lee: After storming out of the gate (.901 OPS in April), he’s taken quite a tumble, going 13-for-65 halfway through May (.200/.209/.354). He has hit 3 home runs, of course, but he’s been held mostly in check. That may or may not continue against a really good pitching staff.
Prediction time
Poll
Royals vs. Giants – how will it go?
0%
Giants win series, 2-1
(0 votes)
0%
Giants lose series, 2-1
(0 votes)
0%
Hey Bryan, how come you didn’t mention that Logan Webb will carve up these bozos on Wednesday? Idiot.
(0 votes)
0 votes total