CHICAGO (AP) -- Big Z was at his best and showed why he's headed to New York for the All-Star game.
Zambrano shrugged off Dunn's homer and then went to work against the Reds.
"That was a bad pitch," Zambrano said. "After that I said, 'Forget about it, just pitch your game. You feel good today and just think about three or four more innings. Pitch your game and don't worry about a home run.' "
The dominating performance came in Zambrano's second start since he was activated from the disabled list with right shoulder strain -- the main reason he didn't come out for the ninth.
"He wanted to go out and finish it, but it's only his second time out being off the DL and we were on a game plan of 100 to 105 pitches," manager Lou Piniella said.
The Cubs did let Zambrano bat in the eighth -- he's a .358 hitter this year -- and he singled, his 19th hit of the season, one shy of last season's entire total.
"That appeased him a little bit," Piniella said.
Zambrano, acknowledging that the time on the DL helped him rest his arm, had no problem with coming out, even though the Reds loaded the bases in the ninth off reliever Carlos Marmol.
"It's been a long time since I pitched a complete game. I think the last time was last year. And I wanted to do that," Zambrano said. "But not in this situation. I came off the DL one start ago. It's too soon."
Zambrano (10-3) walked none and struck out five while throwing 103 pitches. His next appearance could be in the All-Star Game next Tuesday. He'd be well-rested.
"Tonight he was really, really good," Dunn said. "The pitch I hit was probably the only mistake he made the entire game. That's probably the best I've seen him in a long time."
But things got shaky for the Cubs after Zambrano left the game.
Other than Dunn's 23rd homer, the only Reds baserunner against Zambrano was Keppinger, who reached on third baseman Aramis Ramirez's one-out error in the first. He was thrown out trying to steal second as Griffey struck out.
Ramirez hit Johnny Cueto's first pitch in the bottom of the sixth into the bleachers in left center for his 16th homer to break a 1-1 tie.
Cueto (7-9) gave up eight hits and five runs, four earned, in 6 2/3 innings. The Cubs added three runs with two outs in the seventh when Kosuke Fukudome hit an RBI double on a fly ball that went over Dunn's head near the wall in left and Lee delivered an RBI single that finished Cueto. Ramirez greeted reliever David Weathers with an RBI double.
"You can tell the way he did against Zambrano how badly he wanted to win this game," Reds manager Dusty Baker said of Cueto. "Boy, it's tough, especially the way he was competing."
The Cubs tied it in the second with an unearned run as Geovany Soto doubled and raced home when shortstop Keppinger mishandled Mark DeRosa's grounder for an error and the ball ended up in short left center.
Zambrano is 13-9 in his career against the Reds, including 3-0 this season. ... Marmol was limping after covering first base and beating Paul Bako to the bag in the ninth, but said after the game he was OK. ... Rich Harden and Chad Gaudin, acquired in a trade from Oakland on Tuesday, joined the Cubs before the game. Harden will make his Cubs' debut against the Giants on Saturday at Wrigley Field. ... Reds IF Jolbert Cabrera was sent to Class A Daytona for a rehabilitation assignment. He's been on the DL since June 21 when he dislocated his left index finger sliding head first into second against the Yankees.