Zambrano (9-3) had not pitched since June 18, when he experienced shoulder discomfort. He went on the disabled list four days later, but in his comeback he threw six scoreless innings while allowing four hits and striking out five.
All the runs came on solo homers -- by Chicago's Kosuke Fukudome in the first and Geovany Soto in the fourth, and by St. Louis' Albert Pujols in the eighth.
The two Chicago home runs came off Branden Looper (9-6), who surrendered six hits in seven innings.
After Pujols brought the Cardinals within a run with his two-out homer in the eighth, Neal Cotts relieved Bob Howry to get the final out of the inning.
Kerry Wood came on in the ninth and gave up a two-out single before recording his 22nd save.
Chicago's Jim Edmonds was hitless in four at-bats in his first appearance in St. Louis since the Cardinals traded him to San Diego last winter. San Diego released him in May and the Cubs quickly signed the three-time All-Star.


