SAN FRANCISCO, Sept. 4 (UPI) -- Daniel Hudson relinquished one run over seven innings and Arizona scored four runs in the eighth inning Sunday, downing San Francisco 4-1 in a key win.
Hudson (15-9) won for the third straight start, holding the Giants to one run on three hits while walking one and fanning five.
David Hernandez pitched a scoreless eighth and J.J. Putz racked up his 36th save for the National League West-leading Diamondbacks, who took two of three games against second-place San Francisco.
The win moved them seven games ahead of the Giants with less than a month left in the season.
Ryan Roberts tied it up at 1-1 with one-out homer in the eighth off starter Ryan Vogelsong (10-6) and Arizona then grabbed the lead on a two-run triple from Willie Bloomquist off Jeremy Affeldt.
Cody Ross homered in the first inning for the Giants' only run.