The win wrapped up a two-game sweep for the Astros, who took the opener 8-3.
Happ (3-3) yielded seven hits and walked one, managing to escape jam after jam as the Brewers stranded eight while he was on the mound.
Chris Snyder, batting .179 this season, had two hits – including an RBI single after Lowrie’s homer in Houston’s four-run fourth. Jordan Schafer drove in a run later in that inning with a single and also had a double in the third.
Milwaukee starter Shaun Marcum (2-2) allowed four runs – three earned – and a season-high nine hits in five innings.
Happ walked Marcum with one out in the third before a double by Norichika Aoki. Rickie Weeks followed with an infield single – his second hit in his last 29 at-bats – but Happ retired Ryan Braun and Aramis Ramirez to pitch out of the bases-loaded jam.
Happ got into trouble again in the fifth after a single by Cesar Izturis before a one-out single by Aoki. An error by right fielder Brian Bogusevic allowed Aoki to advance to second and Izturis to move to third. Happ got out of this one by striking out Weeks before a groundout by Braun.
In what became a theme for his night, Happ got into another jam in the sixth. A double by Corey Hart before a single by Jonathan Lucroy left runners at the corners with one out. Happ escaped unscathed yet again when Snyder caught a foul popup by Brooks Conrad and Izturis grounded into a force out to end the inning.