Buster Posey and Brandon Crawford homered, Tim Hudson pitched into the ninth and the San Francisco Giants beat the Los Angeles Angels 5-4 Saturday.
Nori Aoki had two RBIs and Casey McGehee had three hits and drove in a run for the Giants, who won their fourth straight at home and eighth of 12 overall.
Albert Pujols and Mike Trout homered in the same game for the 20th time with the Angels, who have lost four of six.
Hudson (1-2) retired the first 10 batters he faced and gave up three runs, two hits and two walks in eight-plus innings. He struck out three.
Hudson walked Kole Calhoun in the fourth, and Calhoun was then caught stealing. Hudson also walked the last batter he faced, pinch-hitter Colin Cowgill to open the ninth.
Sergio Romo got two outs, including a strikeout of Pujols with two runners on. Jeremy Affeldt gave up an RBI single to Kole Calhoun, and Santiago Casilla allowed and RBI single to David Freese.
Casilla then got the last out for his seventh save when Matt Joyce's single hit pinch-runner Taylor Featherston between first and second.
Hector Santiago (2-2) allowed four runs on nine hits in his five innings of work.
Crawford's homer was just the second Santiago has allowed to a left-hander since joining the Angels, a span of 188 at bats. Texas' Shin-Soo Choo connected against Santiago exactly a year ago.
Angels: Pujols (left hamstring tightness) passed his Friday audition and was in the starting lineup.
Giants: RHP Jake Peavy (lower back strain) threw about 25 fastballs in a bullpen session before the game and reported progress. He'll throw another bullpen session on Tuesday and could start a rehab assignment after that. OF Hunter Pence (broken bone in left hand) took fly balls and was given the OK to take batting practice on the field Sunday.
Angels: RHP Jered Weaver (0-3, 5.83) starts Sunday's series finale. He is winless in his first five starts for the first time in his career. Weaver is 16-4 with a 2.55 ERA in 29 career interleague games.
Giants: RHP Tim Lincecum (1-2, 3.27) starts against the Angels for the second time in his career, and the first in six years. He's had pretty good success against Pujols, who has yet to homer or drive in a run against him in 18 career at bats. C Chris Iannetta, who played for the Colorado Rockies, is a .400 hitter (6 for 15) with a home run and eight walks against Lincecum.