Garza (3-1) had his third consecutive strong outing. He allowed one run on eight hits and a walk while throwing 101 pitches.

He spent the first seven weeks of the season on the disabled list with a left lat strain sustained in spring training. Garza was making his eighth start since returning on May 21, and has given up only two earned runs over 22 innings in his last three outings.

"I like where I'm at, and I'm just going to try to keep improving," he said.

The Cubs broke the game open with four runs in the third, capped by Navarro's seventh homer. Milwaukee made a pair of errors and all the runs in the inning off Wily Peralta (5-9) were unearned.

"Every opportunity I get I'm going to try to do the best I can," said Navarro, who has 89 at-bats this year. "I obviously don't try to hit a homer every time I go to the plate, but I try to get good swings. I feel that I hit the ball pretty good the four times today. I was fortunate enough to get one."

Peralta gave up seven runs, three earned, on eight hits and a walk while striking out two in five innings. He allowed the leadoff batter to reach base on singles in each of the first four innings, and three of those runners scored.

"We played really poorly behind him," Milwaukee manager Ron Roenicke said. "He didn't make pitches. He didn't pitch as well as he did last time but I was glad he came out and at least kept us in the ballgame and was able to give us five innings."

Milwaukee's Juan Francisco homered for the third consecutive game, his ninth this year, but committed a costly error in the third that led to three unearned runs.

For the second consecutive game, the Cubs took advantage of Milwaukee errors and fielding miscues. Ryan Sweeney singled leading off the second inning, stole second and moved to third on a wild pitch.

Brian Bogusevic, starting in left field for the second straight game in place of Alfonso Soriano, doubled down the left-field line to score Sweeney and make it 1-0. One out later, Darwin Barney's liner went off Peralta's glove for a single that scored Bogusevic.

Starlin Castro led off the third with a single and stole second. One out later, Sweeney's liner to left went off the glove of Caleb Gindl for a two-base error, making it 3-0.

Anthony Rizzo struck out for the second out. Bogusevic then hit a hard grounder to third, and Aramis Ramirez's throw to first was in time but went off Francisco's glove for the second error of the inning.

Navarro followed by hitting the first pitch from Peralta down the right-field line for a three-run homer to make it 6-0.

"Nobody wants to make errors, but it's going to happen," Peralta said. "I still have to execute, make pitches and pick up my team, but I wasn't able to do that."

An error by second baseman Rickie Weeks in the fourth inning Wednesday night allowed two unearned runs to score in a 5-4 Cubs win over the Brewers.

Game notes
Cubs prospect Jorge Soler has a stress fracture in his left leg and will be out four to six weeks. Soler was selected to the World Team for the All-Star Futures Game, but will be unable to play. He was batting .281 with eight home runs and 35 RBIs in 55 games for Class-A Daytona. ... The game began with the roof open, but when rain threatened it was closed in the fifth inning. ... Sean Halton made his major league debut with a pinch-hit single in the fifth for Milwaukee. He was recalled from Triple-A Nashville before the game. ... Weeks extended his hitting streak to 11 games. Brewers SS Jean Segura ran his streak to 10 games.