The Brewers were just swept in Colorado, outscored 36-10 in three games, and had lost 14 of their previous 17 road games.
Boy, did they need this one.
"It's huge, especially after how we got whipped in Colorado," Hart said. "We're trying to figure out to how to win games on the road. We were down and to be able to come back and win, it's a big step."
Moehler (1-4) retired the first two batters he faced on ground outs. Speedy Rickie Weeks, called up on Friday to replace the injured Tony Graffanino, walked for the fourth time before Hart drove an 0-2 pitch into the right-field corner.
"I was really excited that Rickie got on," Hart said, "because he's the one guy on our team that, if you put anything in that gap down the line, he's going to be able to score. I was just trying to put a ball in play."
Weeks slid home as Craig Biggio's relay throw arrived late. The Astros dropped to 2-8 against Milwaukee this season.
"Two-out walks will kill you," Moehler said. "Any time you get a guy who can run, and you put him on like that, it's going to beat you."
Milwaukee's bullpen was 4-8 with a 5.30 ERA since the All-Star break prior to Friday's game.
"The bullpen's been taking a bit of a beating lately," manager Ned Yost said. "They're an extremely productive bullpen when they're not overused."
After the game, the Brewers intently watched the last two innings of the Chicago Cubs' 6-2 win in Colorado. Milwaukee remained a half game ahead of the Cubs in the NL Central race.
"Every game is a must win," Yost said. "When you're struggling a little bit, you've got to scratch and claw and get yourself out of it. That's what we did today."
Luke Scott hit a three-run homer for Houston, his second consecutive three-RBI game.
Carlos Lee gave Houston a 1-0 lead with an RBI single in the first inning, his 93rd RBI of the season.
Houston starter Jason Jennings retired the first seven Brewers he faced before Hardy launched a 1-0 pitch off the facade in left field. Hardy's 19th homer of the season was his first in 36 games, going back to the solo homer he hit off Jennings in Milwaukee on June 25.
In the fourth, Fielder gave the Brewers a 2-1 lead by hammering a 2-2 pitch high into the upper deck in right field. It was his NL-leading 35th homer.
Ty Wigginton then doubled down the left-field line before Scott drove the first pitch he saw into the right-field seats, his 14th homer of the season, to put Houston up 4-2.
Weeks led off the sixth with a walk and stole second. Jennings hit Hart in the leg with a pitch and struck out Braun, but Houston manager Phil Garner pulled his starter after that, calling on left-handed reliever Trever Miller.
Jennings threw 83 pitches in 5 1/3 innings, a sharp improvement over his last outing at home, when he gave up 11 runs in two-thirds of an inning against San Diego.
Miller threw only one pitch, drilling Fielder in the back to load the bases. Dave Borkowski relieved and Hall tied the game with a ground-rule double into the right-field corner.
The Brewers again loaded the bases for Hall in the seventh, but this time he struck out swinging to end the inning.
Houston reliever Chad Qualls retired six of the eight batters he faced in the eighth and ninth, striking out four.
Loretta nearly won it for Houston with two outs in the bottom of the ninth, but Geoff Jenkins caught his towering drive at the base of the left-field wall.
The Astros stranded nine runners.
"We let some opportunities get away," Garner said. "We did swing the bats, but we didn't hit the ball well with men in scoring position."
- The Brewers lead the majors in home runs with 155, while the Astros lead the majors in home runs allowed with 146.
- Hardy has hit five home runs against the Astros this season.
- Lee has a nine-game hitting streak.
- The Astros have homered in a season-high 12 consecutive games.