CHICAGO -- Matt Garza felt a little off during his first two innings on Thursday.
After a few quick adjustments on the advice of Ryan Dempster, he was close to unhittable.
Garza pitched three-hit ball for 8 2/3 innings, and the Chicago Cubs sent Zack Greinke to his worst beating in 1½ years in an 8-0 victory over the Milwaukee Brewers on Thursday that prevented a four-game sweep.
Helping the Cubs improve to 2-5, Garza (1-0) struck out nine and walked two -- both in the first two innings. He induced Cesar Izturis to hit into an inning-ending double play in the second, starting a stretch in which he retired 16 of 17 batters.
"I asked Dempster if he could look at something and right away he said, 'Yeah. It looks like this,'" Garza recalled. "It's awesome to have a guy like that on the bench."
Nori Aoki reached with two outs in the ninth when Garza threw his comebacker over first baseman Bryan LaHair and into the stands for a two-base error. Garza was removed after 119 pitches and Shawn Camp needed just four pitches to end it, retiring pinch-hitter George Kottaras on a game-ending groundout.
"I'm fine throwing it to the bases. It just slipped out," Garza said. "All spring, I was dotting him in the chest."
It would have been Garza's first shutout since July 26, 2010, when he pitched a no-hitter for Tampa Bay against Detroit.
"When I start something, I intend to finish. I was one out away," Garza said. "We won, that's the plus side."
Greinke (1-1) allowed eight earned runs for the first time since Minnesota beat him -- coincidentally the same day Garza threw his no-hitter.
"After the first two innings keeping the ball down low, he started elevating his pitches," Brewers manager Ron Roenicke said. "I know they didn't continue to hit the ball that hard, but everything fell apart and everything was placed perfectly."
Greinke gave up nine hits and needed 84 pitches to get through 3 2/3 innings, a sharp contrast to his seven shutout innings against St. Louis last weekend in his season debut.
"I made the mistakes with two strikes, both of them in the third inning," Greinke said. "I don't think there's too much to complain about really. Just about a bad start."
Greinke retired his first six batters, then allowed seven of the first eight batters to reach in a six-run third.
Reed Johnson, Darwin Barney and Starlin Castro hit RBI singles, Alfonso Soriano drove in two runs with a broken-bat flare to right field and Ian Stewart beat the infield shift with a run-scoring, opposite-field single to left-center.
Chicago tacked on two runs in the fourth on David DeJesus' run-scoring infield single and an RBI single by Castro. The Cubs had not scored more than five runs in a game coming in.
"A lot of good approaches," Cubs manager Dale Sveum said. "Got a lot of good pitches, made Greinke get the ball up, and we took advantage of all the mistakes he made."
Steve Clevenger had three hits for Chicago, including leadoff doubles in the third and fourth innings.
The rookie backup catcher already had earned Sveum's praise by going 2 for 2 in pinch-hit situations.
"It's being prepared," Clevenger said. "Getting my reps before the game and taking it into the game. When Dale needs me to be ready, I'll be ready."
Brewers 3B Aramis Ramirez was given the day off. ... The Cubs open their first trip of the season Friday at St. Louis. Jeff Samardzija (1-0) will face Adam Wainwright (0-1) and the Cardinals. ... The Brewers head to Atlanta, where Randy Wolf (0-1) starts against Jair Jurrjens (0-1).