The Brewers climbed within 3 1/2 games of St. Louis for the second National League wild card berth.
The lone Cincinnati run came on Joey Votto's double in the first, but Shaun Marcum (6-4) then settled down to get the win. He gave up four hits and struck out seven over six innings.
Marcum had not won since June 8, having spent two months on the disabled list since then with soreness in his right elbow.
Bronson Arroyo (12-9) took the loss, allowing four runs on eight hits in six innings.
The Reds, who have clinched the NL Central title, fell a game behind Washington for the best record in the league.