PHOENIX -- Dan Haren's flu is gone and he's back at full strength.
"That's definitely the best stuff I've had all year," he said.
Acquired from Oakland in a big trade during the offseason, Haren (4-1) scattered five hits over a season-high 7 2/3 innings. Mark Reynolds added a two-run double for the Diamondbacks, who improved their major league-leading record to 19-7.
Haren retired the side in order six times, finishing with five strikeouts and one walk.
"The flu's been going around the whole team and I had it early in the year," he said. "It was really bad. I lost weight and everything, but I'm finally getting back into my normal routine."
"We just keep our nose to the grindstone and play every day," manager Bob Melvin said. "You can't help but to take a look at the start we've had but it's just that - a start."
Miguel Tejada had an RBI double in the eighth for the Astros, who have lost three straight after a season-best six-game winning streak.
Haren helped his own cause in the third. After Stephen Drew doubled off the center-field wall, Haren hit a line drive to right field. Hunter Pence took two steps in and then backpedaled in vain as the ball sailed over his outstretched glove and to the wall for an RBI double.
"It's a lucky thing they play me in more often than not," Haren said.
The Diamondbacks added three more runs in the fourth off Chris Sampson (1-3). Orlando Hudson walked and Conor Jackson singled to center. Reynolds followed with a double into the left-field corner, scoring Hudson and Jackson to make it 3-0. Reynolds then stole third and scored on Chris Snyder's single.
"We're playing good baseball right now," Jackson said. "We need to focus on what we're doing well and keep doing it."
Haren retired his first 12 batters before running into trouble in the fifth. Berkman walked, went to third on Carlos Lee's double and scored on an RBI groundout by Pence.
Mark Loretta singled to make it 4-2. Haren hit J.R. Towles with a pitch, and Sampson was safe at first when his sacrifice bunt rolled untouched between Haren and Reynolds to the left of the mound for a single that loaded the bases.
"We could have used a big hit when we had the bases loaded," Astros manager Cecil Cooper said. "We come through right there and it's a whole different ballgame. We need to get two-out base hits. That's what got us on our winning streak and that's what we need again."
Eric Byrnes made it 5-2 in the fifth when he was hit by a pitch and scored on Jackson's single.
Sampson allowed five runs and seven hits over 4 1/3 innings with two walks and a hit batter.
The Astros chased Haren in the eighth on consecutive two-out doubles by Bourn and Tejada that cut Arizona's lead to 5-3.
Qualls, who came to Arizona in the trade for closer Jose Valverde, struck out Berkman on five pitches to end the inning.
"He came in and threw three nasty pitches," Berkman said. "There's nothing you can do when he throws the ball that way."
- Houston LHP Wandy Rodriguez, out since April 20 with a strained groin, threw 60 pitches in a simulated game and will be re-evaluated Tuesday.
- Astros 3B Ty Wiggington, on the DL since April 6 with a fractured left thumb, made the first of three scheduled rehab starts for Triple-A Round Rock against Tucson and went 1-for-2 with a triple. Wiggington also was hit twice by pitches and intentionally walked once.
- Both of Haren's hits this season have been doubles.
- Reynolds' stolen base was his third, tying him with Byrnes and Chris Young for the team lead.
- Arizona has stolen 14 bases in 16 attempts.