Skip Schumaker and Joey Votto had run-scoring doubles for the Reds, who were coming off being swept in a three-game series at San Diego.
Simon (11-3), making his career-high 17th start, overcame Jonathan Lucroy's home run to move into a tie with the Dodgers' Zack Greinke and the Cardinals' Adam Wainwright for the NL lead in wins.
The Central Division-leading Brewers dropped their fourth straight, matching their longest losing streak of the season.
Simon allowed six hits and two runs with two walks, three strikeouts and a wild pitch in 7 1-3 innings to improve to 5-0 over his last seven starts.
Jonathan Broxton got the final two outs of the eighth and Aroldis Chapman pitched the ninth for his 17th save.
Milwaukee starter Kyle Lohse (9-3) lasted five innings, allowing four runs - three earned - and seven hits with eight strikeouts and one walk while picking up his first loss in five starts since June 6. He was 2-0 over his previous four starts.
Before a crowd of 42,120, Cincinnati's fifth sellout of the season, Simon helped the Reds take a 2-0 lead in the third inning. He lined a single with one out, and Hamilton followed on the next pitch with a 344-foot home run into the visitors' bullpen down the right field line. It was the fifth of the season for June's National League Rookie of the Month.
The Reds scored as many runs in that span of two batters as they totaled against the Padres. They made it 3-0 in the fourth on consecutive doubles by Devin Mesoraco and Schumaker. Mesoraco was robbed of a home run by center fielder Carlos Gomez, who went high above the wall in deep right-center and almost pulled off a highlight-reel catch before settling for keeping the ball in play.
Lyle Overbay's error set up Cincinnati's fourth run. The first baseman couldn't corral Todd Frazier's spinning chopper with one out in the fifth inning, and Frazier scored all the way from first on Votto's double into the left field corner.
The Brewers broke up the shutout in the seventh, which Simon started by hitting Aramis Ramirez, who moved to second on a wild pitch and scored on Jean Segura's single.
Lucroy knocked Simon out of the game in the eighth with his ninth homer of the season, a 374-foot drive to right-center that bounced off the top of the wall and into the stands.
NOTES: Simon's previous career high in starts was 16 for Baltimore in 2011. ... The Reds won their second straight game in front of a sellout crowd after losing their first three this season. ... Milwaukee recalled OF Logan Schafer from Triple-A Nashville on Friday. Schafer, who was optioned on June 13, had travel problems that delayed his arrival at Great American Ball Park, but he was in time to start in left field. ... Reds OF Jay Bruce extended his streak of consecutive hitless at-bats to 20, surpassing his previous career high of 19. ... The Reds opened their busiest home stand of the season. They are scheduled to play 11 games in 10 days, including a doubleheader against the Cubs on Tuesday created by a rainout.