Giants 6, Diamondbacks 2
Jake Peavy struck out eight while working into the sixth inning as San Francisco capped a three-game sweep with its ninth straight home win.
The Giants pounded out 12 hits while pulling to within two games of the first-place Los Angeles Dodgers in advance of a big three-game series between the National League West rivals. Hunter Pence had two RBIs and Buster Posey was 3-for-5 with an RBI as San Francisco improved to 11-5 against Arizona this year.
Peavy (6-13) allowed one run and six hits with no walks in 5 2/3 innings to improve to 5-4 with a 2.29 ERA since being traded from Boston. Counterpart Randall Delgado (3-4) was reached for three runs and seven hits in four frames as the Diamondbacks tied a season high with their sixth straight loss.
Peavy worked around a single with three strikeouts in the first and Pence singled in Angel Pagan in the bottom half for a 1-0 lead. Pagan singled to begin the third and came around on Pablo Sandoval's two-out base hit to center to make it a two-run advantage.
Mark Trumbo's RBI double chased Peavy in the sixth and pulled Arizona within 3-1, but the Giants answered back in their half with run-scoring hits by Juan Perez and Posey as well as a bases-loaded walk to Pence. Jake Lamb's solo homer in the ninth pulled Arizona within 6-2 before Santiago Casilla finished it off to strengthen San Francisco's hold on the first wild-card spot.
GAME NOTEBOOK: San Francisco's home winning streak is tied for the third-longest at AT&T Park, two shy of the club's best run in its current home. ... Giants starting pitchers own a 1.00 ERA during the home winning streak. ... While the Giants and Dodgers begin their series Friday night, the Diamondbacks host San Diego.