Richards improved to 3-0 after holding the Giants to two runs on five hits and one walk. His 11 strikeouts were a season high, but he needed help from the Angels bullpen.
Four Angels relievers combined to pitch the final three innings, with Keynan Middleton getting a key out in the eighth inning before pitching the ninth for his fifth save.
Brandon Belt hit a two-run homer and Evan Longoria had two hits for San Francisco. Albert Pujols homered for Los Angeles, his two-run homer in the sixth off Giants starter Derek Holland providing the margin for victory.
The Angels, though, had to rally in this one.
Pablo Sandoval struck out to begin the second inning for the Giants but reached when the ball got past catcher Rene Rivera on a wild pitch by Richards. Sandoval went to second on another wild pitch, then scored on Belt's two-run homer, his fourth of the season.
The Angels got one run back in the bottom of the second on a home run by Jefry Marte, his first of the season. Trout's solo homer in the third, his American League-leading eighth of the year, tied the game at 2-2.
Trout added two doubles in a 3-for-4 effort.
The game remained tied until the bottom of the sixth when Holland walked Justin Upton before yielding a two-run home run to Pujols, the 618th homer of his career and hit No. 2,992, as the Angels went up 4-2.
Holland (0-3) was able to finish the sixth inning, having given up four runs on five hits and one walk, striking out six and throwing 100 pitches.
The Giants got within 4-3 in the eighth inning, pushing across a run after two were out. Andrew McCutchen walked, then scored on a double by Sandoval. But with the potential tying run on second base, Middleton entered the game and struck out Longoria to end the inning.
Buster Posey was a late scratch from San Francisco's lineup because of a stiff back. Posey, who was initially in the order as the designated hitter, was replaced by Sandoval.
--Field Level Media
San Francisco | LA Angels | |
Derek Holland | Player | Garrett Richards |
Loss | W/L | Win |
6.0 | IP | 6.0 |
6 | Strikeouts | 11 |
5 | Hits | 5 |
6.00 | ERA | 3.00 |
San Francisco | LA Angels | |
Evan Longoria | Player | Mike Trout |
2 | Hits | 3 |
0 | RBI | 1 |
0 | HR | 1 |
2 | TB | 8 |
.500 | Avg | .750 |
Team | Hits | HR | TB | Avg | LOB | K | RBI | BB | SB | Errors |
San Francisco | 7 | 1 | 11 | .206 | 13 | 17 | 3 | 3 | 0 | 0 |
LA Angels | 6 | 3 | 18 | .207 | 5 | 7 | 4 | 2 | 1 | 0 |