PHOENIX - Brandon Belt hit a three-run homer in the eighth inning and the San Francisco Giants rallied against Arizona's bullpen for the third straight game, beating the Diamondbacks 9-6 Wednesday night to complete a three-game sweep.
Belt hit a two-run single off Brad Ziegler in the opener and Pablo Sandoval hit a two-run homer off Arizona closer J.J. Putz on Tuesday.
Belt finished off the series of comebacks with his homer off David Hernandez (1-2), giving San Francisco its first road sweep over the Diamondbacks since July 22-25, 2010.
Angel Pagan led off the game with a homer, Hunter Pence added a 460-foot solo shot and George Kontos (2-1) pitched 1 2/3 innings after starter Tim Lincecum struggled. Sergio Romo extended his scoreless streak against Arizona to 27 innings in the ninth for his 11th save.
Chad Pennington homered and matched a career-high with four RBIs for the Diamondbacks.
Arizona had 15 hits after getting 11 the previous two games combined and Brandon McCarthy put the Diamondbacks in position to win with six decent innings.
But Hernandez couldn't hold a 6-4 lead.
He walked Pence and Gregor Blanco in the eighth, then served up an 0-2 pitch that Belt hit out to right, setting off a round of boos from the home fans before the ball even landed. It was Arizona's majors-leading 10th blown save of the season.
McCarthy got his sixth start with Arizona off to a rough start, giving up a homer for the fourth straight game when Pagan hit his second pitch over the wall in right.
The right-hander gave up two more runs in the fifth inning on a run-scoring double by Pagan and Brandon Crawford's RBI triple.
Pence hit the first pitch he saw in the sixth to the deepest part of Chase Field, a get-out-of-here quick solo shot to right-center that pulled the Giants to within 5-4.