SAN FRANCISCO — After watching the Giants blow a lead on Sunday, Logan Webb insisted there was no reason to panic. He pointed out several times that there were 152 games to go.
It’s the longest season in sports, and it can turn quickly. Over the final two days at Oracle Park, that’s exactly what happened for the Giants.
Rafael Devers’ three-run homer sparked a 5-0 win over the Philadelphia Phillies on Wednesday and clinched the series against one of the National League’s most talented teams. The Giants finished with a 3-4 homestand against the Phillies and Mets, which isn’t the stuff you write books about, but is certainly much better than where they were standing midway through the week back home. They had back-to-back home shutouts for the first time since 2018.
This one was a good pitcher’s duel for most of the afternoon, and the game was sailing along until the sixth, when the Giants finally got going. Willy Adames hit a bloop to right that dropped for a double, his fifth of the series, and Luis Arraez walked. Matt Chapman then had a very 2026 battle.
Chapman thought he had walked, but his challenge of a 3-1 pitch wasn’t rewarded. On 3-2, he thought he had walked again, but this time, Phillies catcher Rafael Marchan challenged and won. A pitch later, the Giants had the lead.
Devers got off to a very slow start, but he crushed a three-run shot to center off Aaron Nola to give the Giants a healthy lead. The Giants tacked on two late runs thanks to a Phillies throwing error.
Sneaky Good
Tyler Mahle’s third start as a Giant was his best and continued a good week for a rotation that was much better the third time through. If you strip away the poor infield defense all year, it’s actually been a sneaky strength the whole season.
The rotation entered the day ranked 19th in ERA but fifth in FIP. By the latter metric, it’s been the second-best group in the NL early on, behind only the Phillies.
Mahle had the usual bad luck early when Bryce Harper hit a hard liner that short-hopped Adames. Kyle Schwarber was on first and froze, but Adames also froze after picking up the ball and Schwarber slid in safely, putting two on with one out. Mahle got a liner to right and then struck out Bryson Stott to end the threat.
Tyler Mahle’s third start as a Giant: 5 2/3 innings, 3 hits (and one should have been an out), 0 runs, 4 walks, 6 strikeouts. The rotation has had to deal with a lot of bad defense, but is top five in MLB by FIP.
— Alex Pavlovic (@PavlovicNBCS) April 8, 2026
The Phillies would have just one more hit off the right-hander, who walked four and struck out six. Mahle was particularly good with his splitter, getting six whiffs on the pitch and using it for five of his strikeouts.
Rafi’s Return
Devers had a .188 average and .521 OPS and was striking out in nearly a third of his at-bats when he stepped in against Aaron Nola in the sixth. He got a first-pitch fastball across the heart of the plate and did exactly what someone of his stature is supposed to, hitting a booming fly ball that kept going and going until it landed in the net beyond the center field wall.
The homer was Devers’ second of the season and just the fifth of the year for the Giants. They are, however, middle of the pack in doubles and tied for the MLB lead in triples, so there has been some power, even if it hasn’t fully changed many games yet. On Wednesday, Devers did it with one swing.
Tip Your Cap
The bullpen took a lot of heat in the middle of the homestand after blowing back-to-back games and allowing four runs late in each, but the group was excellent on Wednesday.
Matt Gage was the first to enter and retired both batters he faced to get to six scoreless appearances on the season. Caleb Kilian is also at six scoreless appearances after getting through the top of the Phillies lineup in the seventh.
Tony Vitello turned to rookie Blade Tidwell in the eighth and he had a 1-2-3 inning. The Giants tacked on two more insurance runs as Erik Miller warmed up for the ninth, and he also had a clean inning to close out the homestand.
Download and follow the Giants Talk Podcast