Giants Outlast Pirates Behind Ray’s Dominant Arm and Devers’ Power
The San Francisco Giants proved once again that you don’t need to score a lot of runs to win ballgames, you just need to score more than the other guy. Behind the steadying presence of Robbie Ray on the mound and timely hitting throughout the lineup, the Giants dispatched the Pittsburgh Pirates 5-2 on Friday night at Oracle Park in a game that was closer than the final score suggests.
Pitching Decisions
Star Performers
Ray was absolutely brilliant for six innings, striking out seven Pirates while surrendering just four hits and one earned run. The left-hander walked four batters, which normally would be concerning, but he was able to wiggle out of trouble every time it mattered. This wasn’t a dominating performance in the traditional sense, but it was exactly what the Giants needed: efficient, professional baseball from a pitcher who understood the assignment.
Devers and the Giants Strike Early
Rafael Devers got the home Giants on the board in the second inning with a solo shot that gave San Francisco an early 1-0 lead. It was a short, quick jab from a dangerous hitter who had no intention of letting the Pirates dictate the terms of this ballgame. Devers finished the evening with two hits and made his presence felt in multiple ways on both sides of the ball.
The Pirates answered immediately in the top of the second when Marcell Ozuna, who was celebrating his 300th career home run, belted a solo shot to left field. It was a milestone moment for Ozuna, but you had the sense from the jump that it wasn’t going to be enough to carry Pittsburgh through nine innings.
Things stayed tight until the fourth inning when Heliot Ramos slapped a single that brought home Devers with the go-ahead run. From that point forward, the Giants controlled the tempo of the game in a way that frustrated the Pirates offense.
Giants Blow It Open Late
The real damage came in the seventh inning when the Giants manufactured two critical runs. Drew Gilbert’s single brought home Willy Adames, and then Luis Arraez delivered the knockout blow with a two-run single that pushed the Giants’ lead to 5-1. It was the kind of bottom-of-the-order, small-ball execution that separates contenders from pretenders in September.
Carmen Mlodzinski was solid for the Pirates, allowing just two earned runs over six innings with a strikeout, but he simply didn’t have enough run support. That’s the bitter truth of baseball sometimes, and it was painfully evident on Friday night. The Pirates scored a consolation run in the ninth when Spencer Horwitz drove in Oneil Cruz, but by that point, the outcome had been determined long ago.
This game embodied everything the Giants have been trying to accomplish in 2026. They don’t need to hit home runs in bunches, they don’t need to light up the scoreboard. They need competent pitching, timely hitting, and enough execution to win close ballgames. On Friday night, they got all three. The Pirates went home empty, and the Giants moved on to Saturday’s matchup with another quality win in the books.
Box Score
Pittsburgh Pirates Batting
| Player | AB | R | H | RBI | BB | SO | AVG |
|---|---|---|---|---|---|---|---|
| Jared Triolo 1B | 4 | 0 | 0 | 0 | 0 | 1 | .171 |
| Nick Gonzales 3B | 1 | 0 | 0 | 0 | 3 | 0 | .306 |
| Bryan Reynolds LF | 3 | 0 | 0 | 0 | 1 | 0 | .248 |
| Marcell Ozuna DH | 3 | 1 | 2 | 1 | 1 | 0 | .198 |
| Oneil Cruz CF | 3 | 1 | 1 | 0 | 1 | 1 | .247 |
| Konnor Griffin SS | 3 | 0 | 1 | 0 | 1 | 1 | .259 |
| Joey Bart C | 3 | 0 | 0 | 0 | 0 | 2 | .208 |
| Spencer Horwitz PH | 1 | 0 | 1 | 1 | 0 | 0 | .252 |
| Nick Yorke 1B | 2 | 0 | 0 | 0 | 0 | 1 | .214 |
| Brandon Lowe 2B | 2 | 0 | 0 | 0 | 0 | 0 | .262 |
| Billy Cook RF | 3 | 0 | 0 | 0 | 0 | 2 | .200 |
| Ryan O'Hearn PH | 1 | 0 | 0 | 0 | 0 | 0 | .290 |
Pittsburgh Pirates Pitching
| Pitcher | IP | H | R | ER | BB | SO | ERA |
|---|---|---|---|---|---|---|---|
| Carmen Mlodzinski (L) | 6.0 | 7 | 2 | 2 | 0 | 1 | 4.50 |
| Justin Lawrence | 0.0 | 3 | 3 | 3 | 0 | 0 | 6.60 |
| Evan Sisk | 1.0 | 1 | 0 | 0 | 0 | 1 | 1.93 |
| Cam Sanders | 1.0 | 1 | 0 | 0 | 0 | 3 | 9.00 |
San Francisco Giants Batting
| Player | AB | R | H | RBI | BB | SO | AVG |
|---|---|---|---|---|---|---|---|
| Jung Hoo Lee RF | 4 | 0 | 2 | 0 | 0 | 0 | .270 |
| Luis Arraez 2B | 4 | 0 | 1 | 2 | 0 | 0 | .314 |
| Casey Schmitt DH | 4 | 0 | 1 | 0 | 0 | 0 | .294 |
| Rafael Devers 1B | 4 | 2 | 2 | 1 | 0 | 2 | .229 |
| Matt Chapman 3B | 4 | 0 | 0 | 0 | 0 | 1 | .227 |
| Willy Adames SS | 4 | 1 | 2 | 0 | 0 | 0 | .203 |
| Heliot Ramos LF | 4 | 1 | 2 | 1 | 0 | 1 | .261 |
| Drew Gilbert CF | 4 | 1 | 1 | 1 | 0 | 1 | .259 |
| Jesus Rodriguez C | 2 | 0 | 1 | 0 | 0 | 0 | .455 |
| Patrick Bailey C | 0 | 0 | 0 | 0 | 0 | 0 | .146 |
San Francisco Giants Pitching
| Pitcher | IP | H | R | ER | BB | SO | ERA |
|---|---|---|---|---|---|---|---|
| Robbie Ray (W) | 6.0 | 4 | 1 | 1 | 4 | 7 | 2.76 |
| Keaton Winn | 1.0 | 0 | 0 | 0 | 0 | 1 | 2.76 |
| Matt Gage | 1.0 | 0 | 0 | 0 | 1 | 0 | 1.17 |
| Caleb Kilian | 1.0 | 1 | 1 | 1 | 2 | 0 | 1.59 |
