Justin Upton hit a two-run home run and drove in three as Arizona downed Houston, 13-8, in the opener of a three-game series.
Stephen Drew drove in three, Miguel Montero went 2-for-5 with a pair of RBI and a run scored while Aaron Hill had three hits and two runs scored for the Diamondbacks, who had lost five of seven coming in. Trevor Cahill (8-8) gave up four runs -- three earned -- on nine hits over 5 1/3 innings to get the win.
"I felt like I was making some good pitches tonight and putting them where I wanted them," said Cahill. "It helps to relax you out there when the guys put up the runs like they did tonight."
Scott Moore hit a three-run homer while Carlos Corporan hit his first career home run and drove in two for the Astros, who have lost four straight and eight of nine. Bud Norris (5-8) lost his seventh straight start as he was torched for nine runs on six hits with five walks and seven strikeouts over 4 1/3 innings.
"I don't know what to say," said Norris, "it wasn't pretty...out there grinding and battling and trying to make pitches."
The Astros took the initial lead of the game in the first inning as Marwin Gonzalez doubled home Jordan Schafer and later came home on a J.D. Martinez groundout for a 2-0 lead.
Arizona got a run back in the bottom of the first when Drew doubled home Gerardo Parra, who led off with a walk and moved to second on a bad pickoff throw from Norris.
The Diamondbacks went up for good in the third. With one out and men on second and third, Jason Kubel tied the game on a groundout that scored Drew and Upton followed with a first-pitch shot over the bullpen in right field for his eighth homer of the year and a 4-2 lead.
In the fifth, Arizona padded its lead. With the bases loaded, Upton walked to force in a run and Montero hit a two-run single to spell the end of Norris' game.
Enerio Del Rosario then took the mound and Paul Goldschmidt greeted him with an RBI double. Cahill later drove in the first run of his career with a single to make it a 9-2 game.
A fielding error by Ryan Wheeler in the sixth off a Brian Bixler grounder scored Brian Bogusevic and Corporan followed with a run-scoring double to get the Astros within five, 9-4.
Arizona continued to pound the Astros in the seventh as Ryan Roberts hit a run-scoring single, a fielder's choice by Parra scored another and Drew followed with a two-run single for a 13-4 lead.
Corporan hit the first home run of his career in the eighth while Moore's three-run homer in the ninth accounted for the final score.
Hill extended his hitting streak to 11 games...Arizona has taken seven of the eight games with Houston this season...Arizona batted 10-for-21 with runners in scoring position while Houston went just 3-for-15 and stranded eight...Norris came into the game with a 10.91 earned run average against Arizona and is now 0-4 in five career starts against the D'Backs.