Buster Posey’s sacrifice fly scored the go-ahead run in the eighth inning and the Giants won their fourth straight against Arizona and third overall with a 3-1 victory on Tuesday at AT&T Park.
Melky Cabrera continued his historic month with three hits and Ryan Vogelsong tossed seven strong innings for the Giants, who have won 12 of their last 18 games to pull within 5½ games behind the first-place Los Angeles Dodgers.
Clay Hensley (2-3) worked a scoreless eighth inning for the win and Santiago Casilla pitched a perfect ninth for his 14th save and third in as many days.
Tied 1-1 in the eighth, the Giants pulled ahead when Posey’s sacrifice fly off Bryan Shaw (1-3) scored Ryan Theriot. Joaquin Arias added an insurance run when his ground ball scored Cabrera.
The Diamondbacks led 1-0 in the second inning after Josh Bell’s RBI single, and the Giants answered in the sixth when Posey doubled to drive in Cabrera.
Cabrera’s 50 hits this month are the second-most in a single month in San Francisco-era history, behind only Randy Winn’s 51 hits in September 2005.
Arizona starter Joe Saunders, who has not beaten the Giants in six career starts, gave up one run over 5¹⁄³ innings.
NOTES: Arizona shortstop Willie Bloomquist was scratched because of soreness in his hamstrings. … Giants outfielder Gregor Blanco went 0-for-4 after hitting .476 over his last five games. … Arias left six runners on base, striking out with the bases loaded in the fourth and hitting into an inning-ending double play with the bases loaded in the sixth. … Casilla is 14-for-15 in save chances this season.