Updated

Wade Miley pitched six solid innings and drove in a run to lead the Arizona Diamondbacks to a 3-1 victory over the Houston Astros on Friday night.

Miley hit a sacrifice fly and Chris Young doubled in a run in the fifth for Arizona, which has won seven consecutive games against the Astros. Paul Goldschmidt added another RBI double in the eighth.

Houston has dropped four of five to fall to 6-28 since the All-Star break. The Astros are 39-81 overall for the worst record in the majors.

Jose Altuve and Ben Francisco had two hits apiece, and Tyler Greene hit a sacrifice fly in the fifth for Houston's only run.

Miley (13-8) allowed eight hits, struck out five and walked none in his first win since July 31 at Los Angeles. The left-hander was 0-2 with a 3.48 ERA in his previous two starts.

Brad Ziegler, Daniel Hernandez and J.J. Putz each worked a one-hit inning to close it out. Putz struck out Steve Pearce with a runner at second for his 15th straight save and 24th overall.

The Astros were held to two runs or fewer for the third time in four games, despite outhitting Arizona 11-6. Houston stranded 10 and went 2 for 10 with runners in scoring position.

Astros left-hander Dallas Keuchel (1-5) gave up two runs and four hits in 6 2-3 innings, but remained winless since June 23 at Cleveland. He is 0-5 with a 6.18 ERA in his last eight starts.

Houston, which has struggled at the plate for much of the season, came close to being shut out for the 12th time.

Greene's one-out fly ball to center was deep enough for Marwin Gonzalez to score, cutting Arizona's lead in half.

NOTES: Diamondbacks OF Jason Kubel was scratched with a sore neck. ... 3B Chris Johnson faced his former team for the first time since the Astros traded him on July 28 for minor leaguers Bobby Borchering and Marc Krauss. Johnson went 0 for 3 with a walk. ... Former Astros knuckleballer Joe Niekro was enshrined into the Astros Walk of Fame outside Minute Maid Park. Niekro pitched for the Astros from 1975-1985. He died in 2006 at age 61.