Zambrano allowed four hits in eight innings, Cliff Floyd hit a tiebreaking homer in the seventh and the Chicago Cubs beat St. Louis 5-3 Friday night to send the Cardinals to their eighth straight loss.
"I was feeling good," Zambrano said. "I don't think I could pitch any better than this."
Chicago, which survived a wild ninth that ended with the bases loaded, won for the fifth time in seven games and opened a 1½-game lead over second-place Milwaukee in the NL Central, the Cubs' largest margin since before play on Sept. 4.
"Very exciting," Cubs manager Lou Piniella said. "My mouth was getting nice and dry."
St. Louis has lost eight straight for the first time since July 27 to Aug. 4 last year. The defending World Series champions, just one game out of first before play last Saturday, are six behind the Cubs, their largest division deficit since Aug. 11.
Their sliver of hope is the last three games of the Cubs series and three against the second-place Brewers.
"We definitely have a major uphill battle, no doubt about it," losing pitcher Adam Wainwright said. "But we play the important teams, and that gives us a chance."
Zambrano (16-12) won his second straight start after losing five in a row. He improved to 3-0 with a 1.69 ERA against the Cardinals this season and tied his career best for wins, set in 2004 and matched last year.
Teammate Daryle Ward, who hit a three-run pinch-hit double in the ninth, believes Zambrano finally settled down after signing a $91.5 million, five-year contract extension on Aug. 17.
"We knew he was going to come back, it was just a matter of time," Ward said. "I'm pretty sure he had the little contract situation on his mind and now you've got that out of the way, and he's got a clear head again."
Mark DeRosa's RBI single in the fourth put the Cubs ahead against Wainwright (13-11), but Albert Pujols ended a 20-game, 75-at-bat homerless drought when he connected in the sixth. He hadn't hit one since Aug. 22 off Florida's Scott Olsen.
Floyd homered into the Cardinals' bullpen beyond the right-field wall leading off the seventh. While he has just eight home runs this season, he's connected in three straight games.
Ward's three-run double in the ninth off Jason Isringhausen put the Cubs ahead 5-1. The hit came off a sinker instead of Isringhausen's best pitch, the cut fastball.
"It was just a rare mistake that he made, and I was able to capitalize on it."
Wainwright (13-11) allowed two runs and five hits in seven innings, dropping to 0-3 against the Cubs.
"I have people tell me I threw the ball great, but the fact is in a tie game you can't give up a home run in the seventh inning like that to a dangerous hitter," Wainwright said. "That was a bad job of pitching by my part."
Chicago is 9-4 against the Cardinals this year, including 5-1 at Busch Stadium.
The Cardinals' Scott Spiezio was activated from the restricted list earlier in the day and manager Tony La Russa put him right in the lineup at third base after shortstop David Eckstein was scratched with back soreness, with Brendan Ryan moving from third to shortstop. Spiezio got a nice ovation before his first at-bat and played seven innings, going 0-for-2 with a walk and a strikeout.
La Russa juggled his shaky rotation, saving Wainwright for the Cubs on six days' rest after earlier planning to work him on Thursday in Cincinnati. He said Wainwright and Braden Looper would work on regular rest the rest of the season.
- New Saint Louis basketball coach Rick Majerus threw out the ceremonial first pitch.
- Zambrano has 75 wins since 2003, three fewer than the Astros' Roy Oswalt for the NL lead.
- The Cubs have hit 21 homers in September and have homered in seven straight.
- Zambrano is 8-4 with a 2.37 ERA for his career against St. Louis.
- Wainwright is 6-4 but with a 2.49 ERA since the All-Star break.