"He threw really well," Cubs manager Rick Renteria said. "He repeated his outings in terms of execution, and the calmness he shows out there."
Hendricks struck out five and walked one, continuing an impressive opening run for his major league career. The right-hander is 4-1 with a 1.01 ERA in five starts since he got a no-decision in his debut at Cincinnati on July 10.
"Every time I'm going out there I just feel confident that I can make pitches," said Hendricks, who was acquired in the July 2012 trade that sent Ryan Dempster to Texas. "It grows each start, and it's going to keep growing hopefully."
Anthony Rizzo hit his 26th homer for Chicago, which had lost three of four. Arismendy Alcantara had two hits and drove in a run after going 1 for 14 through the first four games of the Cubs' seven-game homestand.
Trying for a major league-high 15th win, Peralta allowed three runs and seven hits in 6 1/3 innings. The right-hander had won each of his last five starts and was 10-1 with a 4.06 ERA in his previous 12 games coming into the night.
Peralta (14-7) has lost each of his three starts this season against last-place Chicago. He is 6-0 with a 1.10 ERA in seven games against the rest of the NL Central.
"For some reason, they put together good at-bats against me," Peralta said. "As a group, they're a young team and they have big league hitters. I think I'm gonna get another chance to face them and I just want to get a win."
The Cubs grabbed the lead on Justin Ruggiano's RBI single in the second, and Alcantara added another run-scoring single in the fourth. Alcantara's hit drove in Starlin Castro, who reached on a leadoff double to extend his hitting streak to 11 games, the best such streak for the Cubs this year.
Rizzo then led off the sixth with a towering drive to left for his first homer since July 22.
"It was supposed to be down and away and I got it up," Peralta said. "When you work behind this guy, he's a pretty good hitter and he's gonna make you pay for it."
Pedro Strop replaced Hendricks (4-1) with the bases loaded in the eighth and got Jonathan Lucroy to ground into an inning-ending double play. Hector Rondon then worked a perfect ninth for his 15th save in 19 chances.
The Brewers had won four of five. They had their NL Central lead trimmed to 1 1/2 games over Pittsburgh, which won 4-2 at Detroit.
Milwaukee center fielder Carlos Gomez made a great leaping grab on the warning track in the first, taking extra bases away from Javier Baez. Gomez then was hit by a pitch on his right wrist in the third, but stayed in the game.
Cubs: LHP Felix Doubront (strained left calf) struck out seven while pitching four-plus innings in his first rehab appearance with Triple-A Iowa. He was charged with three runs and four hits. ... Castro said he tweaked his left knee, but should be fine. ... Ruggiano was removed after seven innings due to "leg fatigue," Renteria said.
Brewers RHP Kyle Lohse (11-6, 3.33 ERA) and Cubs LHP Tsuyoshi Wada (1-1, 3.25 ERA) are slated to start the third game of the series Wednesday night. Lohse is 2-0 with a 1.69 ERA in two starts against Chicago this season, including a three-hitter in a 9-0 victory on June 1. Wada is making his first appearance against Milwaukee and his sixth career start overall.
Jay Cohen can be reached at http://www.twitter.com/jcohenap