PHOENIX (AP) -- Exactly one year after he went down with a brutal ankle injury, Stephen Drew was back in the thick of things for the Arizona Diamondbacks.
And it felt good.
Drew, subject of considerable trade speculation, drove in three runs with a double and a single and the Diamondbacks opened a 10-game homestand with a 13-8 victory over the reeling Houston Astros on Friday night.
He said his wife had reminded him that it was exactly a year ago that he broke his left ankle and tore the ligaments surrounding it in a slide at home plate. Drew didn't return until a month ago.
''I haven't played the game in almost a year,'' he said, ''so I'm just trying to get back in the swing of things and it felt good. It felt good to get guys in when they're in scoring position. I'm just glad to be a part of it.''
Justin Upton hit his 99th career home run for Arizona and drew a bases-loaded walk from Bud Norris for a third RBI.
''It was nice to get the bats going,'' Upton said. ''We went out and got some good pitches to hit, drove some balls and got runners in scoring position, and we executed.''
Trevor Cahill (8-8) gave up four runs, three earned, in 5 1-3 innings to get the win.
''I would have liked for him to go more than 5 1-3 innings,'' manager Kirk Gibson said, '' but he just lost it.''
Norris (5-8) allowed nine runs, six hits and five walks in 4 1-3 innings for his seventh straight loss. The Astros have lost four straight and 17th of 19.
''I don't know what to say,'' Norris said. '' It wasn't pretty. I am out there grinding, battling and trying to make pitches. I didn't miss many barrels today.''
Upton's two-run, opposite-field shot on Norris' 0-2 pitch broke a 2-2 tie in the third inning.
Cahill scattered nine hits while improving to 4-1 in his last six home starts. He had an RBI single in the Diamondbacks' five-run fifth. All five of the batters Norris walked scored.
Arizona's Aaron Hill was 3 for 4 with a double and a walk and scored twice, extending his hitting streak to 11 games. Miguel Montero's bases-loaded single brought in two runs.
''If you look up and down the lineup, just great production from everybody,'' Gibson said. ''We just kept the pressure on. We had 21 attempts with runners in scoring position and 10 of them we got in.''
The Astros' Carlos Corporan hit his first major league home run. He also had an RBI double. Scott Moore hit a three-run homer off Arizona's Bryan Shaw with two outs in the ninth.
Jordan Schafer opened the game with a bloop double, then scored on Marwin Gonzalez's single. Gonzalez took third on Matt Downs' bunt single and scored when J.D. Martinez grounded into a double play to give Houston a 2-0 lead.
Arizona cut it to 2-1 in the first when Gerardo Parra drew a leadoff walk and scored on Drew's double.
Drew walked with one out in the third, advanced to third on Hill's single, and scored when Jason Kubel grounded out, tying the game at 2-2. Upton, 8-for-20 in his last five games, followed with his eighth homer of the season to put Arizona ahead for good.
Parra doubled to start the Diamondbacks' big fifth inning. With one out, Norris walked three consecutive batters to bring in Arizona's fifth run. Montero's two-run single off the glove of the charging Schafer in center brought in two more, then RBI singles by Paul Goldschmidt and Cahill made it 9-2.
The Diamondbacks gave up two in the sixth, one on Corporan's double.
Drew singled in two in Arizona's four-run seventh.
NOTES: LHP Dallas Keuchel has been called up from Triple-A Oklahoma City and will start for Houston on Saturday night in place of J.A. Happ, who was part of Friday's 10-player trade with Toronto. A roster move will be made Saturday to make room for Keuchel. LHP Wade Miley (10-5, 3.13 ERA) goes for Arizona. ... Norris' last five starts have been on the road. ... Arizona 3B Ryan Wheeler was 1-for-4 and committed an error in his major league debut. ... Montero twice threw out Schafer trying to steal second.