HOUSTON -- Houston had not been playing like the team with the best record in the American League over the last few weeks. But the Astros are showing signs of coming out of their slump after the offense came alive to beat the Arizona Diamondbacks, winning consecutive games for the first time in three weeks.
Josh Reddick hit a two-run homer in a four-run eighth that put the game away. Starter Charlie Morton (10-5) threw 6 1/3 solid innings as the Astros defeated the Diamondbacks 9-5 on Wednesday night.
Arizona had pulled to within 5-4 in the top of the eighth. But the Astros added some insurance runs when Juan Centeno scored on a wild pitch by David Hernandez, and Jose Altuve's sacrifice fly drove in Derek Fisher. Reddick capped the inning off by hitting his 12th home run that just cleared the right field wall.
"I've taken a lot of pride in doing better against lefties this year, not trying to hit homers off of them," Reddick said of his home run off Andrew Chafin. "Just trying to get good pitches."
Houston won consecutive games for the first time since July 24-25 in Philadelphia. The Astros, coming off a 2-6 road trip, had 16 hits for 14th time this season. On Tuesday night the Astros cruised to a 9-4 victory over the Diamondbacks in Phoenix.
"I think it's what we're used to seeing aside from the last week and a half hitting that speed bump," Reddick said. "We all knew we were going to be alright we were just tired of waiting. The last two games prove we can hop out of it at any given moment."
Paul Goldschmidt hit a two-run home run over the railroad tracks above the left field wall, and J.D. Martinez followed with a solo shot to right-center to cut Houston's lead to one in the eighth.
"We showed a lot of battle," Arizona manager Torey Lovullo said. "I know things didn't get off the right way for us, but I think something clicked offensively for us, and Goldy's home run set a really good tone for what we were ready to do. Unfortunately, we didn't have a shutdown inning."
Morton gave up one run on three hits with nine strikeouts.
"Strikeout after strikeout, power fastball, he threw a couple of breaking balls in there and then relied a little bit more on his breaking ball as the outing went along," Houston manager A.J. Hinch said.
The right-hander, who tied a career-high with his 10th win of the season, rebounded nicely after being tagged for five runs in his last start.
"My four-seam helped me out a lot; I threw quite a bit of them," Morton said of his fastball. "Had some swings and misses with it. I think they were hunting the sinker and I gave them a bit of a different look."
Taijuan Walker (6-7) allowed five runs, three earned, on nine hits in five innings. Walker has allowed five runs in consecutive starts and has not won since June 21.
"I don't think it was a struggle to find anything," Walker said. "I made good pitches. It was one of those games that every ground ball hit found a hole. I didn't have my best fastball velocity."
Carlos Beltran gave the Astros a 1-0 lead in the second with a monstrous home run into the upper deck in right field. But Brandon Drury tied it at 1 with an RBI double in the top of the third.
After Marwin Gonzalez walked with the bases loaded to score George Springer, Beltran hit a sacrifice fly in the bottom of the third to score Altuve and give Houston a 3-1 lead.
Reddick hit an RBI single and Yuli Gurriel followed with an RBI double in the fourth to extend Houston's lead to 5-1.
Chris Iannetta hit a solo home run in the ninth for Arizona.
Diamondbacks OF David Peralta expects to rejoin the team Thursday, Lovullo said. He is currently on the paternity leave list. . LHP Robbie Ray (concussion) will make a rehab assignment Thursday with Class A Advanced Visalia.
Diamondbacks: LHP Patrick Corbin (9-11) will make his first career start against the Astros Thursday in the finale of a two-game series in Houston. Corbin is looking to build on his last outing on Aug. 12 when he threw 6 2/3 shutout innings against the Cubs.
Astros: RHP Mike Fiers (7-7) will make his 24th start of the season Thursday. Fiers took the loss in his last outing Saturday allowing six runs in four innings.