Chris Owings went 3-for-4 with an RBI, while Gerardo Parra added three hits and scored twice for the D-backs, who evened their three-game series.
Martin Prado went 2-for-4 with an RBI, a walk and a run scored for Arizona.
Trevor Cahill (8-10) yielded two runs (one earned) on seven hits over 5 2/3 innings to collect the win, walking one and striking out five.
Rockies starter Collin McHugh (0-3) was roughed up for six runs on 11 hits in a five-inning performance.
Jordan Pacheco and Jonathan Herrera each drove in a run for Colorado.
Ohio crash that killed two caught on camera [VIDEO]
Mena Suvari shares her delightfully awkward Christmas card photo