Giants Demolish Angels Behind Devers, Lee Power Display
The San Francisco Giants put on a clinic in offensive execution on Saturday at Oracle Park, dismantling the Los Angeles Angels 9-2 in a performance that left little doubt about which team belonged in this matchup. This wasn’t a game. This was a statement. The Giants’ lineup came out swinging from the first pitch, and by the time the dust settled, the Angels were left wondering what hit them.
Pitching Decisions
Star Performers
Early Barrage Sets Tone
Ryan Johnson lasted just 3.1 innings for the Angels, surrendering eight runs on eight hits while recording only one strikeout against four walks. His performance was the equivalent of a relief pitcher getting spot-started, and it showed. The Giants’ third inning was the kill shot, a five-run explosion that put this game firmly out of reach before most fans had finished their first drink.
Rafael Devers was the orchestrator of San Francisco’s offensive symphony, going 3-for-4 with a double, a three-run homer, and four RBIs. This is what elite offensive production looks like. Devers didn’t just get hits, he got them when it mattered most, driving in runs in two separate innings and making Johnson look like he was throwing batting practice.
Jung Hoo Lee wasn’t to be outdone, launching a three-run shot in the third inning that essentially ended any semblance of competitive baseball. Lee finished 2-for-3 with three RBIs, proving once again that the Giants’ offense has legitimate pop up and down the lineup. When your lineup can produce multiple three-run homers in one game, you’re not just winning, you’re dominating.
Ray Deals Gem While Angels Sputter
On the flip side, Robbie Ray was magnificent for six innings, allowing zero earned runs while scattering six hits and striking out five. Ray didn’t have to be spectacular because the Angels’ lineup was rendered completely ineffective. The Angels managed just two runs, courtesy of a ninth-inning walk to Vaughn Grissom that scored Jose Siri after the game was already decided. This was professional pitching against an opponent that came unprepared.
The Angels’ inability to string together consistent offensive threats was the real story here. Jose Siri, despite being involved in the scoring, couldn’t get his team back in the game when it mattered. Lo Adell, Logan O’Hoppe, and the rest of the Angels’ order looked overmatched against a Giants pitching staff and a defense that executed flawlessly.
This Saturday afternoon at Oracle Park belonged entirely to San Francisco. The Giants demonstrated what happens when a lineup comes ready to play while simultaneously getting solid pitching. They didn’t need heroics or drama, just fundamental baseball played at the highest level. The Angels, meanwhile, served as a reminder that on any given day, even in late July, one team can simply be too talented, too prepared, and too hungry for the other. The final score of 9-2 tells the entire story: it wasn’t close, and it never really was.
Box Score
Los Angeles Angels Batting
| Player | AB | R | H | RBI | BB | SO | AVG |
|---|---|---|---|---|---|---|---|
| Zach Neto SS | 3 | 0 | 0 | 0 | 0 | 1 | .236 |
| Oswald Peraza SS | 1 | 0 | 0 | 0 | 0 | 1 | .239 |
| Mike Trout CF | 3 | 0 | 2 | 0 | 1 | 0 | .237 |
| Josh Lowe RF | 0 | 0 | 0 | 0 | 1 | 0 | .207 |
| Vaughn Grissom 2B | 4 | 0 | 1 | 1 | 1 | 1 | .255 |
| Jorge Soler DH | 5 | 0 | 0 | 0 | 0 | 1 | .201 |
| Nolan Schanuel 1B | 4 | 0 | 1 | 0 | 0 | 1 | .282 |
| Jo Adell RF | 2 | 0 | 1 | 0 | 1 | 1 | .243 |
| Wade Meckler LF | 1 | 0 | 0 | 0 | 0 | 0 | .297 |
| Denzer Guzman 3B | 4 | 0 | 0 | 0 | 0 | 0 | .240 |
| Jose Siri CF | 3 | 2 | 2 | 0 | 1 | 0 | .281 |
| Logan O'Hoppe C | 4 | 0 | 2 | 0 | 0 | 0 | .216 |
Los Angeles Angels Pitching
| Pitcher | IP | H | R | ER | BB | SO | ERA |
|---|---|---|---|---|---|---|---|
| Ryan Johnson (L) | 3.1 | 8 | 8 | 8 | 1 | 4 | 7.34 |
| Brent Suter | 2.2 | 2 | 1 | 1 | 0 | 4 | 4.42 |
| Kirby Yates | 1.0 | 1 | 0 | 0 | 1 | 0 | 3.65 |
| Tyler Heineman | 1.0 | 0 | 0 | 0 | 0 | 0 | 10.38 |
San Francisco Giants Batting
| Player | AB | R | H | RBI | BB | SO | AVG |
|---|---|---|---|---|---|---|---|
| Luis Arraez 2B | 4 | 2 | 2 | 1 | 0 | 1 | .326 |
| Jesus Rodriguez 2B | 1 | 0 | 0 | 0 | 0 | 0 | .239 |
| Heliot Ramos LF | 5 | 1 | 1 | 0 | 0 | 1 | .262 |
| Bryce Eldridge DH | 3 | 0 | 0 | 0 | 1 | 2 | .263 |
| Drew Cavanaugh DH | 1 | 0 | 0 | 0 | 0 | 0 | .225 |
| Rafael Devers 1B | 4 | 2 | 3 | 4 | 0 | 0 | .249 |
| Christian Koss 3B | 0 | 0 | 0 | 0 | 0 | 0 | .143 |
| Casey Schmitt 1B | 4 | 1 | 1 | 1 | 0 | 0 | .272 |
| Jung Hoo Lee RF | 3 | 1 | 2 | 3 | 0 | 1 | .302 |
| Grant McCray RF | 0 | 0 | 0 | 0 | 0 | 0 | .000 |
| Willy Adames SS | 4 | 0 | 1 | 0 | 0 | 2 | .225 |
| Drew Gilbert CF | 3 | 1 | 1 | 0 | 1 | 1 | .235 |
| Daniel Susac C | 3 | 1 | 0 | 0 | 0 | 0 | .250 |
San Francisco Giants Pitching
| Pitcher | IP | H | R | ER | BB | SO | ERA |
|---|---|---|---|---|---|---|---|
| Robbie Ray (W) | 6.0 | 6 | 0 | 0 | 2 | 5 | 3.16 |
| Tristan Beck | 2.0 | 1 | 1 | 1 | 1 | 0 | 6.39 |
| Keaton Winn | 1.0 | 2 | 1 | 1 | 2 | 1 | 3.38 |
