Chris Young hit a two-run homer, Miguel Montero added a two-run single and Joe Saunders tossed seven solid innings to help the Diamondbacks down the Rockies, 6-2, in the middle installment of a three-game set.
Arizona has won five straight and eight in a row at home to climb over .500.
Saunders (5-6) recorded a season-high nine strikeouts and gave up just three hits -- though two were home-run balls to Michael Cuddyer.
"I felt great," Saunders said. "I kind of knew when I was warming up that I had good life on my fastball. Everything was working in the bullpen."
Edwar Cabrera (0-2), in his second major-league start, gave up two runs on four hits and four walks in just 3 1/3 innings of work.
Cuddyer broke a scoreless tie in the fourth with a home run to left, but a pair of run-scoring doubles by Stephen Drew and Willie Bloomquist in the bottom half gave Arizona the lead.
A fan reached over the wall and interfered with Bloomquist's line drive, resulting in a ground-rule double, but no one had a chance to spoil Young's homer in the fifth, as his blast off Josh Roenicke landed over the bullpen down the left-field line.
Cuddyer cut the deficit to 4-2 with his 14th home run of the season in the sixth, though Montero, who on Tuesday tied Chris Snyder for most games caught in Diamondbacks history, padded the lead with a two-run single in the seventh.
Takashi Saito and David Hernandez each hurled a perfect inning of relief behind Saunders to close out the win. Arizona pitchers retired the final 10 batter they faced.
"We didn't pitch very well tonight and we didn't hit," Colorado manager Jim Tracy said. "You're not going to win too many games that way."
Montero and Snyder have each caught 537 games for Arizona...Young went 2-for-2 with two walks...To open a spot on their roster for Cabrera, the Rockies placed infielder Jason Giambi on the 15-day disabled list with fatigue...Cuddyer has eight career multi-home run games...The Rockies are just 5-18 at Chase Field since the start of the 2010 season.