Craig Biggio had a triple and three RBI as Astros snapped a seven-game losing streak with a 10-1 victory.
Lance Berkman, Mark Loretta and Adam Everett each had two RBI and the Astros shook out of a slump with their highest run total of the season. Houston came into the game batting only .240 and had scored a total of 11 runs in its previous five games.
"We needed to have a game like this," said Berkman, who went 3-for-4. "We're not where we need to be, but it gives you something to draw on."
Chris Sampson (3-1) struck out eight, his highest total in seven career starts. In a bullpen session this week, Sampson worked out a flaw in his mechanics with pitching coach Dave Wallace.
"I kind of figured out what was making me leave the ball up," Sampson said. "I had some pretty good stuff tonight."
Sampson also helped out with his bat, getting his first major-league hit during the four-run fifth inning that turned the game into a rout.
Everett started the rally by reaching on a fielder's choice. Hunter Pence, making his major-league debut, was hit by a pitch leading off and was retired on Everett's grounder.
After Brad Ausmus singled, Sampson singled up the middle. Everett tried to score, but center fielder Bill Hall fired a perfect throw to catcher Johnny Estrada for the tag out at the plate.
Biggio walked to load the bases again and Loretta followed with a slow bouncer to the left side of the mound. Brewers starter Dave Bush (2-2) scooped it barehanded, but his throw home was off-target and Ausmus scored for a 2-1 Houston lead.
Berkman then singled down the right-field line to clear the bases. He was caught in a rundown between first and second, but Loretta crossed the plate before that to make it 5-1.
Houston manager Phil Garner said Berkman's play was the biggest of the game.
"It looked like we were going to have a hard time scoring runs and then Lance came through with the big blow and kind of cleaned things up," Garner said. "And then it just kind of freed up after that."
Everett added a two-run double and Biggio had a two-run triple in the sixth inning. Biggio scored on Loretta's single, giving Houston its first double-digit run total since a 10-4 win in Milwaukee on Sept. 9.
Garner said he'd noticed that the Astros had started "pressing" at the plate in recent games, trying to do too much. He hopes Saturday's offensive output settles everyone down.
"We want to continue to push, push hard," Garner said. "To me, pressing is when you start thinking about the results more than the process. We had some good at-bats tonight. I hope that's something that carries through and the players continue to feel good about it."
Bush gave up eight runs and 10 hits in 5 1/3 innings, losing to the Astros for the first time in six career starts. The Brewers lost for just the third time in 10 games.
"It got out of hand quickly," Bush said. "They scored four runs on three pitches. It's frustrating, but it's part of the game. I felt good out there. I made a couple of pitches in the zone they hit, but I felt I threw well other than that."
Everett led off the third inning with a double and later came home on Biggio's sacrifice fly to left.
Prince Fielder and Hall started the fourth with singles before Estrada rolled into a fielder's choice. Geoff Jenkins then singled to right to score Fielder and tie the game at 1-1.
Biggio has 54 career triples and 2,953 career hits. ... Bush's loss was the first in 12 games for a Milwaukee starter. ... Loretta, batting a team-high .361, replaced 3B Morgan Ensberg in the Astros' lineup. Ensberg is hitting .261. ... The Brewers had scored at least two runs in every game this season. ... Astros reliever Brad Lidge, demoted from the closer role, struck out the side in the eighth inning. ... Pence was hitting .341 in the minors and replaced CF Chris Burke, who was batting .219.