Home runs accounted for 11 tallies and the teams combined for 25 hits in a game that also saw Houston Manager Cecil Cooper and catcher Brad Ausmus ejected in separate run-ins with first base umpire Angel Campos.
The Astros were denied what would have been their first two-game winning streak in three weeks.
The Brewers extended their lead in the fifth thanks to Jason Kendall's first home run of the year, a two-run shot.
After Houston climbed within a run in the sixth, the Brewers tacked on three in the eighth -- two coming on Hart's second homer.
Manny Parra (5-2) survived long enough to get the win, giving up five runs on 10 hits in 5 1/3.
Brandon Backe (4-8) suffered the loss after allowing five runs on seven hits in four innings.