With the Rockies up 4-1, the Diamondbacks kept chipping away at the Colorado lead, and a four-run eighth inning gave Arizona a 7-4 lead. Willie Bloomquist, Jason Kubel, Ryan Roberts and Paul Goldschmidt all delivered with RBI singles in the eighth inning.
However the lead was short lived, as Colorado tied the game with three runs in the bottom of the eighth inning. David Hernandez walked in two runs and an error by Ryan Roberts let in another Colorado run.
With one on and two outs in the top of the ninth inning, Justin Upton hit a two-run home run to give the Diamondbacks a 9-7 lead.
Closer J.J. Putz once again got himself into trouble in the ninth when the right-hander allowed three straight singles to start the ninth inning. With the bases loaded, Colorado manager Jim Tracy was forced to use pitcher Alex White as a pitch-hitter for Rafael Betancourt. White did not swing the bat and ended up striking out looking with a full count. The next batter, Ramon Hernandez grounded into a double play to end the game.
Colorado pitchers walked nine Arizona hitters, Justin Upton walked three times and both Paul Goldschmidt and Gerardo Parra walked twice. Goldschmidt collected two hits and was on base four times on Thursday. Roberts went 3-5 with two RBI's, and Jason Kubel went 2-5 with an RBI.
Trevor Cahill went five innings for the Diamondbacks, allowing four runs on five hits and striking out six. While only throwing one pitch, Brad Ziegler (2-1) collected his second win of the season after getting the Diamondbacks out of a bases loaded jam in eighth inning.
The Diamondbacks are now 2-2 on their seven game road trip. Up next for Arizona is a weekend interleague series against the Kansas City Royals.