HOUSTON -- None of Chris Capuano's pitches were working Friday night. That's why his manager thought he threw his best game of the season.
Capuano (4-0) gave up Carlos Lee's RBI single in the first, then held the Astros to three hits over the next six innings.
"There are certain days you go out there and nothing works," Capuano said. "When you don't have any of those working, you can't just throw in the towel. You've got to find a way to still get outs and I was able to do that."
Capuano didn't have a strikeout, walked three and hit a batter.
"Today was his best start," Brewers manager Ned Yost said of Capuano, "because he had his worst stuff and he made it work."
Johnny Estrada homered in the eighth off new Astros reliever Stephen Randolph, helping the Brewers win for the seventh time in nine games.
Houston, which last lost seven in a row in May 2005, was playing its first home game since April 17. The Astros managed four runs or less for the seventh consecutive game.
"We haven't been able to come up with the big hits," said Astros slugger Lance Berkman, who is off to an 18-for-74 (.243) start. "This is not the first time this has happened and it won't be the last. It's just one of those funks in the season."
Francisco Cordero shut out Houston in the ninth to improve to 9-for-9 in save opportunities. Cordero has not allowed an earned run in 10 1/3 innings this season.
Derrick Turnbow was just as good in the setup role again, pitching a perfect eighth. Turnbow didn't allow a run for the 10th time in 12 appearances.
"They've been great," Capuano said. "If we can get through the seventh, get it to Turnbow and Frankie, we feel pretty good."
Like Capuano, Oswalt (3-2) was less than his best and the Brewers finally took advantage in the seventh.
Geoff Jenkins led off with a single and Gabe Gross followed with a double off the left-field wall. Oswalt struck out Craig Counsell but then loaded the bases by walking Tony Gwynn Jr., who pinch hit for Capuano.
Leadoff man Rickie Weeks grounded out and Jenkins sprinted home to tie the game.
Hardy then ripped a liner into the left-field corner to score Gross and Gwynn. Hardy leads the Brewers with 16 RBI.
"You keep putting pressure on and you hope, sooner or later, you're going to push one across," Hardy said. "We were finally able to do that."
Oswalt gave up six hits and four walks in losing for just the seventh time in his last 33 decisions at Minute Maid Park.
"I felt good tonight," Oswalt said. "With Hardy, I threw a pitch exactly where I wanted to and he just sat on it."
The left-handed Randolph was called up from Triple-A Round Rock on Thursday after Rick White was placed on the disabled list. Randolph struck out the only batter he faced in his debut in Pittsburgh, but one night later, Estrada sent his 1-1 pitch into the left-field seats to make it 4-1.
The Astros designated Randolph for assignment after the game.
Craig Biggio led off the game with a line-drive double into the left-field corner, his 2,952nd career hit. Capuano plunked Chris Burke in the left shin before Berkman grounded into a double play.
Lee followed with a sharp single up the middle, scoring Biggio for his 17th RBI in his last 15 games.
Oswalt dodged trouble early as the Brewers had at least one baserunner in each of the first four innings. Milwaukee loaded the bases with two outs in the fourth, but Oswalt got Counsell to fly out.
Biggio ranks eighth with 643 career doubles, three behind Carl Yastrzemski. ... The Astros dropped to 1-7 against left-handed starters this season. ... The Brewers won for just the second time in their last seven games in Houston.