CHICAGO -- Carlos Zambrano delivered with his pitches and his bat. Then he delivered this message: "Big Z is back on track," he said.
Looking more like the NL All-Star he was last season than the erratic pitcher who got into a fight with his catcher, Michael Barrett, 10 days before, Zambrano had one of his strongest outings against a favorite opponent Monday night.
With Koyie Hill behind the plate instead of Barrett in both outings since the altercation, Zambrano has two wins.
"This is a new season for me. When you have great pitches and trust in yourself, you just let the bad things go and start new things," Zambrano said. "That's what I'm doing right now."
In his first appearance at Wrigley Field since his June 1 fight with Barrett, Zambrano threw 128 pitches and outdueled hard-luck loser Woody Williams.
Zambrano gave Barrett a black eye and sent him to a hospital for six stitches in his lip after they tussled in the dugout and the clubhouse during a loss to Atlanta.
Zambrano and Hill seem to have hit it off, so it's hard to tell when or if Barrett will catch Zambrano again.
"I'm really comfortable with him and I think he's really comfortable with me," Hill said. "I think it's just a breath of fresh air. He turned the page on some stuff and really focused in on what he needs to do."
Zambrano (7-5) had a two-hit shutout going into the eighth when Mike Lamb led off with a walk and pinch-hitter Luke Scott singled as diving center fielder Felix Pie couldn't come up with his sinking liner.
Brad Ausmus hit a grounder to third and Mark DeRosa threw to second for the force, but second baseman Mike Fontenot's relay to first was wild for an error that allowed Lamb to score. Zambrano got out of the inning by striking out pinch-hitter Orlando Palmeiro and getting Craig Biggio to fly out to the left-field wall, then typically showed his emotions by jumping as he came off the mound.
"He was real tough. That's the Zambrano everyone is used to seeing," Houston's Lance Berkman said. "It seems like whenever he pitches against us, he doesn't have any problems finding his 'A' game."
Zambrano was 3-0 against the Astros last season and is 9-5 against them in his career. In his last six starts against Houston, he's allowed only three earned runs in 46 innings.
Ausmus and Berkman also singled off Zambrano, who walked one and struck out eight.
Ryan Dempster, who blew a save chance Sunday night when he gave up three runs in the eighth inning, pitched the ninth for his 13th save in 15 opportunities. He got slugger Carlos Lee to ground into a game-ending double play. Lee also hit into a double play in the seventh.
Zambrano hit an opposite-field homer -- the 12th of his career -- to put Chicago up 2-0 in the third.
"I was lucky. It was a high pitch," Zambrano said.
The Cubs' first run came in the second with two outs when Fontenot doubled and scored on Ryan Theriot's single off Williams (2-9), who allowed only four hits and two runs in seven innings.
"I really don't feel that I have pitched that poorly and here I am 2-9," the 40-year-old Williams said. "I can't keep looking at the record. I know it has to change sometime."
- Zambrano's 12 career homers tie him with Claude Passeau for second place among Cubs pitchers. Ferguson Jenkins holds the club record with 13.
- Theriot and Fontenot were teammates on the 2000 LSU team that made the College World Series.
- Astros rookie Hunter Pence returned to the lineup. He left Friday's game against the White Sox with a hip flexor.
- The game was a makeup from an April 11 postponement because of snow.
- Lamb made a great catch at first base of a vicious liner by Jacque Jones to double off Derrek Lee at first in the sixth inning. The force of the ball knocked Lamb to the ground, but he spun around and tagged the bag.