Corbin (6-7) limited the Giants to two runs on eight hits, issuing only one walk while striking out five.
He also provided the difference at the plate, breaking open a 2-2 tie with a three-run triple in the fourth inning. The pitcher later came in to score on Aaron Hill's two-run double.
Corbin added a run-scoring single in the seventh as the Diamondbacks avoided a three-game sweep.
Justin Upton swatted a solo homer en route to three RBI for the winners.
Ryan Vogelsong (12-9) was roughed up for seven runs (six earned) on five hits in a 3 1/3-inning start for the National League West-leading Giants.