Updated

HOUSTON (AP) — Dan Haren struck out nine in his first complete game this season and Tony Abreu had a career-high four hits, leading the Arizona Diamondbacks to a 6-3 victory over the struggling Houston Astros on Thursday night.

Kelly Johnson led off the game with his 10th home run of the year, giving him the National League lead. Haren (4-1) allowed seven hits and walked one for his 10th career complete game and first since July 10 against Florida.

The Astros lost for the ninth time in 10 games and dropped to an NL-worst 9-19.

Abreu scored in Arizona's three-run third inning and drove in a run with a double in the fourth. The Diamondbacks took three of four in the series.

Astros starter Wandy Rodriguez (1-4) had his worst outing of the season, yielding nine hits and five runs in 3 2-3 innings. He walked one and struck out four.

Abreu's run-scoring double in the fourth made it 5-0 and chased Rodriguez. Adam LaRoche stretched the lead to 6-2 in the fifth when he tripled and scored on a single by Rusty Ryal.

Jeff Keppinger doubled in the Houston fourth before scoring on a single by Carlos Lee to make it 5-1. A single by Geoff Blum later in the inning scored Lee and got Houston within 5-2.

Justin Upton singled in a run and scored, and Abreu came home on a sacrifice fly to push Arizona's lead to 4-0 in the third.

Haren gave up a double to Michael Bourn to start the first inning before retiring the next nine batters — striking out seven of them. He didn't allow another hit until Keppinger's double in the fourth.

The right-hander gave up two singles in that inning, but didn't yield another hit until a bunt by Humberto Quintero with nobody out in the eighth. Quintero later scored to make it 6-3.

NOTES: It was Johnson's second leadoff homer. ... Lee told reporters before the game that he might retire when his contract expires after the 2012 season. ... Ten Houston Texans players participated in a home run derby before the game. Reliant Energy made a donation to local Boys & Girls Clubs for each home run hit and the event raised more than $31,000. Quarterback Matt Schaub raised the most money with $5,500.