The Brewers' franchise-record-tying streak of games with 10 or more hits ended quietly at nine as Hammel allowed only four hits, all singles, and struck out eight batters with no walks.
"He was just on point today," said Brewers left fielder Khris Davis, who singled in the second inning but was thrown out trying to stretch a double. "It's hard to string them along off that guy."
Justin Grimm and Pedro Strop finished Chicago's fourth shutout victory this season and sealed Milwaukee's sixth shutout loss. Starts by Hammel have accounted for two of each at Miller Park.
The same mid-afternoon sun that caused trouble for Brewers batters against Hammel should have benefited Peralta, the right-hander who entered the day with a 1.69 ERA in May and had not allowed more than three earned runs in any of his first 10 starts this season. He surrendered six runs to the Cubs on five hits in 5 2/3 innings, losing for the fourth time in his past five starts.
"You know, I don't feel like I had my best today, but you know you're going to have days like that; you're going to have to make pitches," Peralta said. "I wasn't able to do that today."
Peralta appeared on track for another gem when he retired the first nine Cubs batters he faced before Emilio Bonifacio led off the fourth inning with a single. Bonifacio hustled to second base to deny the Brewers a double play on Junior Lake's grounder -- the call stood upon video review, to the shock of Brewers manager Ron Roenicke -- and Rizzo followed by hitting a full-count fastball to the right-field seats for a 2-0 lead.
Two innings later, Rizzo homered again in a full count with a runner aboard. This time he connected with a Peralta slider with two outs and made the score 4-0, boosting Rizzo to 8-for-19 lifetime against Peralta with four home runs.
"The first one I think, it was a pretty good pitch, a 3-2 count," Peralta said. "The other one just came back to the middle trying to go backdoor, but he put a good swing on it -- nothing you can do about that. I'm going to face him a couple more times during the season, just trying to get him out."
When Starlin Castro followed Rizzo's second homer with a double and Nate Schierholtz walked, Roenicke called for left-hander Zach Duke, who surrendered three straight run-scoring hits and saw the Cubs' lead grow to 7-0.
That was more than enough for Hammel. Including his seven scoreless innings at Miller Park on April 27, Hammel has worked 14 scoreless innings here, allowing seven hits with two walks and 15 strikeouts.
Why is he so tough a matchup for Milwaukee?
"I don't know, it's hard to say when I don't see him pitch against other teams," Roenicke said. "He's having a nice year. He's a good pitcher. His ERA's low and for a reason. It's good stuff. The fastballs are 93-94. He hits 95 when he wants to. It's got a great angle because he's tall, and I think he's got an outstanding breaking ball. I can see where he would give a lot of teams trouble."
The fastball offered particular trouble. Both Davis and second baseman Scooter Gennett, who had two of the Brewers' hits, characterized it as "sneaky."
"He touched up to 95 [mph], but it gets on you quick," Davis said. "He's got good stuff. He doesn't nibble around. He goes right after guys, and you can tell he believes in his stuff."
"He's got a quick arm, and it kind of sneaks up on you a little bit," Gennett said. "Today was even tougher, a day game with our tough shadows. It goes both ways, too. They have to hit with it, so there's no excuses."
Indeed, Cubs batters combined for 10 hits, including five in Peralta's 5 2/3 innings. Peralta downplayed the impact of an injury scare in the second inning, when he winced after delivering a pitch to Castro because of discomfort in his lower back. That drew a visit from Roenicke and head athletic trainer Dan Wright, though Peralta remained in the game. He said he would have no trouble making his next scheduled start.
"He kind of spun off the pitch, so his back kind of tightened up on him," Roenicke said. "As he kept moving, it seemed to be fine. I don't know now after the game if it's tightened up more, but he was fine getting through it."
Rizzo didn't notice a difference.
"I saw 97 [mph] with sink, even when the trainer went out there," Rizzo said. "He's a good pitcher. He's certainly someone you can't try to do too much off of or he'll eat you up."
The Brewers will now try to re-awaken their bats on Sunday afternoon against Cubs ace Jeff Samardzija, who leads National League starters with a 1.68 ERA.
"You're going to have good games most of the time, and we have been, I think," Roenicke said. "And then you're going to have games where there's just a really tough pitcher. And they did a really nice job of hitting. In tough circumstances, I think they did a great job with hitting."