SAN FRANCISCO — Robbie Ray was everything the Giants could ask for on Sunday afternoon at Oracle Park.
In a performance that continued a strong recent stretch, the 34-year-old went eight innings and gave up an unearned run, leading San Francisco to a 3-2 win.
It was an outing that only figures to increase potential interest in Ray at the upcoming MLB trade deadline, one where the Giants figure to be busy after ending their first winning homestand since April with a record of 35-48.
The Braves, who remain in first place in the NL East, are 49-33.
In a matchup of former Cy Young winners, Ray outdueled Braves starter Chris Sale, who is tracking to be an NL All-Star and entered Sunday’s game with an ERA of 2.14. Sale went six innings and conceded two runs (one earned).
Robbie Ray #38 of the San Francisco Giants pitches against the Atlanta Braves in the top of the third inning at Oracle Park on June 28, 2026 in San Francisco, California. (Photo by Thearon W. Henderson/Getty Images)
It was the first time the future Hall of Famer allowed an earned run in 21 career innings pitched at Oracle Park.
“Robbie is Robbie,” Giants manager Tony Vitello said. “If you look at his track record, he’s fully capable of doing what he did at the beginning of the year. Maybe a couple of outings there where it didn’t go great for him, and he’s kind of back to where he was.”
Ray was perfect through four innings until Matt Olson broke up his run of 12 consecutive batters retired with a single to center to lead off the fifth.
His shutout bid was ruined in the eighth when Michael Harris II drove in Eli White with a sacrifice fly, but Ray buckled down and retired Ozzie Albies with a popup to center to end the inning.
“It was just working today,” Ray said. “I was getting early outs early on in the game. I feel good. I feel like there’s definitely some things to build off of, but I feel like I’m in a really good spot right now.”
Ray has not allowed an earned run in his last three starts, a streak that dates to June 16 and has featured two wins over Atlanta. Overall, Ray has won three of his last four starts, and the Giants have won the last six games Ray has started.
Luis Arraez #1 of the San Francisco Giants scores from third base on a throwing error from Austin Riley #27 of the Atlanta Braves in the bottom of the sixth inning at Oracle Park on June 28, 2026 in San Francisco, California. (Photo by Thearon W. Henderson/Getty Images)
The day wasn’t without its challenges. Casey Schmitt, scratched before the game with a viral infection, was called into action to replace Willy Adames in the eighth after Adames exited the game after he swung and missed at a slider to end the seventh.
Adames said he has been dealing with back spasms for the better part of a week, and his empty hack exacerbated the existing inflammation.
“It’s tight,” Adames said. “It’s painful. My lower back’s been bothering me for a few days running. It just got locked up today in my first at-bat, I guess, and then it just stayed there. And then that last at-bat, it just got worse.”
Adames, who said he received treatment after leaving the game and would do so again before boarding the Giants’ plane to Phoenix, immediately called for a replacement after the swing, making the “I’m done” gesture with his hand.
So Vitello had to call in Schmitt, who wasn’t exactly in peak condition.
“Going into the cage and telling him he was at shortstop, it was like waking a drunk guy up for a job interview,” Vitello said. “He didn’t look good. If you were watching him, the body language was, he was hurting.
“We’ve had some valiant effort from some guys. At the very least, something for Giants fans to rally around. We’ve had a few guys absolutely battle through some stuff to be out there and give us what they can that day.”
Heliot Ramos #17 of the San Francisco Giants hits a single against the Atlanta Braves in the bottom of the sixth inning at Oracle Park on June 28, 2026 in San Francisco, California. (Photo by Thearon W. Henderson/Getty Images)
The Giants broke the scoreless tie when Luis Arraez scored in the sixth on an infield single by Rafael Devers, running home when Austin Riley’s throw bounced off Olson’s glove and trickled away from him and down the right-field line. They scored again when Albies threw the ball past Olson on Jung Hoo Lee’s grounder to the right side, allowing Heliot Ramos to score.
Ramos made his return from a right quad strain Sunday and played in his first game with the Giants since May 15.
Arraez led off the inning with an infield single down the left-field line, and Ramos further set the table with a single to center. Arraez added on in the seventh, bringing in an insurance run with a sacrifice fly to right that scored Drew Gilbert, who had led off the inning with a pinch-hit single to center.
The Sunday matinee was attended by 33,138 fans. Next up for the Giants is a quick six-game trip that begins Monday with an evening game in Arizona and will continue with a three-game set in Colorado over the holiday weekend, starting Friday.
Subscribe to our Giants HQ newsletter for game analysis, scores, and everything you want to know about your San Francisco Giants.