The 39-year-old Hudson held the Angels to two hits -- solo homers by Mike Trout and Albert Pujols -- in eight-plus innings, leading his team to its seventh win in the last 10 games and dropping his ERA to 3.78.
"I felt pretty good," Hudson said. "It was just a day where things worked out for us really good. Buster [Posey] called a good game and I was able to change some speeds and locate the ball pretty well."
"He had a shot, but it was a rocket," said Angels manager Mike Scioscia, his team 11-13 after back-to-back losses. "It wasn't going to be an easy play. There was that lip."
MOMENTS THAT MATTERED Solo shots: Crawford continued his assault on left-handed pitching this year by going 2-for-4 against Angels starter Hector Santiago and southpaw reliever Cesar Ramos. Crawford's afternoon was highlighted by his fourth-inning solo shot to center field, as he is now batting .333 (7-for-21) against lefties this year. Posey extended San Francisco's lead to 5-2 with a deep blast in the seventh inning off Angels reliever Vinnie Pestano.
"I wish I knew exactly what it was," Crawford said of his success against southpaws. "I'd try it against righties, too."
Two-out nightmare: Santiago, who gave up four runs in five innings, has allowed 11 runs this year. Seven have come with two outs. He gave up two on Aoki's two-run single in the second, a line drive just over the reach of Freese at third base, and another on McGehee's bloop single in the fifth.
"I'm not doing anything different mentally or physically," Santiago said. "It just seems to happen that way."
Small ball: Hudson helped out his own cause by laying down a key sacrifice bunt in the second inning. After Crawford singled to push McGehee over to third, Hudson bunted Crawford into scoring position for Aoki. San Francisco's leadoff man didn't disappoint, driving in the game's initial two runs by slapping a single to left field.
Caught looking: Pujols providing an encouraging sign in his first game back from a tight left hamstring, crushing a Hudson offering to left-center field for his fourth home run. But while representing the tying run with one out in the ninth inning, the Angels' first baseman struck out looking on an outside-corner Sergio Romo fastball he felt was off the plate. Pujols, who missed the last two games with his hamstring injury, felt good and plans to play Sunday. More >
"It is nice to know that you can go out there and pitch deep into the game. No question about it. If it's a day where you can give the bullpen a complete day off, that's awesome. But I wouldn't expect it too much from the old guy, to be honest." -- Hudson, on pitching into the ninth inning.More >
"I feel better. I definitely do. I'm definitely squaring more balls up than I was, so that's a plus. I'm going to try to take the positives from it and ride that into tomorrow." -- Joyce, who's batting only .147, on hitting the ball hard a couple of times Saturday.
SOUND SMART WITH YOUR FRIENDS
Posey's seventh-inning solo homer was just the third hit Angels righty specialist Vinnie Pestano has allowed in 16 at-bats against an opposing right-handed hitter all year. Since joining the Angels on Aug. 7, 2014, Pestano has held opposing right-handed hitters to a .105 batting average (4-for-38).
Giants manager Bruce Bochy played a big role in San Francisco's fourth run of the afternoon. In the fifth inning, Bochy successfully challenged that Justin Maxwell was safe at second base on what was originally ruled an inning-ending double play. With Maxwell aboard and the frame extended, McGehee roped an RBI single into center to make it 4-1 Giants.
WHAT'S NEXT Angels:Jered Weaver takes the ball for Sunday's 1:05 p.m. PT series finale, searching for his first victory while going winless through his first five starts of a season for the first time in his career. Weaver gave up five first-inning runs against the A's on Tuesday, but recovered to give up only one more run through seven innings.
Giants: San Francisco will turn to right-hander Tim Lincecum as it goes for the series sweep Sunday. Lincecum looks to rebound from his last start, when he lasted a season-low four innings in a loss against the Dodgers. He has a 3.27 ERA and 16 strikeouts in 22 innings this year but hasn't faced the Angels since 2009.
Alex Espinoza is a contributor to MLB.com. Alden Gonzalez is a reporter for MLB.com. Read his blog, Gonzo and "The Show", and follow him on Twitter @Alden_Gonzalez. This story was not subject to the approval of Major League Baseball or its clubs.