Zambrano (2-2) is unbeaten against the Cardinals in his last eight starts, going 5-0 with a 1.54 ERA (58 2-3 innings) over that stretch. He ended a three-game winless streak by allowing one run and seven hits with two strikeouts.
Jones had two hits in the fifth and went 3-for-4 overall with four RBIs. Derrek Lee continued his hot start for the Cubs, going 2-for-4 with an RBI. Lee has reached safely in all 23 games he's played and is batting .391 (36-for-92).
Albert Pujols led off the seventh with his sixth homer of the season for St. Louis. It was the 256th of his career, moving him ahead of Ken Boyer and into second place on the Cardinals' career home run list behind only Stan Musial (475).
PHOENIX - Barry Bonds hit his 742nd career home run for San Francisco. Scott Hairston hit his 14th, and it lifted Arizona to the win.
Hairston, a pinch hitter, hit reliever Vinnie Chulk's first pitch 418 feet into the left-field seats with two runners on to give the Diamondbacks a 5-4 lead in the seventh inning.
Dustin Nippert (1-0) pitched two scoreless innings. Jose Valverde got three outs for his 10th save in 11 chances.
DENVER - John Smoltz continued his mastery of Colorado and Chipper Jones drove in two runs for Atlanta.
Smoltz (3-1) allowed two runs, nine hits, and struck out eight in seven innings to improve to 11-4 with nine saves and a 3.43 ERA in his career against the Rockies.
The 39-year-old was aided by an efficient offense that used three hits including a two-run single by Jones, a solo home run by Jeff Francoeur and a triple by Kelly Johnson in the first four innings to build a 5-2 lead.
PITTSBURGH - Matt Belisle didn't allow a baserunner until the sixth inning and finished with a five-hitter for his first complete game and Cincinnati ended Pittsburgh's five-game winning streak.
Belisle (3-1) hadn't lasted longer than six innings in 100 major league games, yet retired the Pirates' first 16 batters until Ronny Paulino doubled into the right-center gap with Cincinnati up 5-0 in the sixth. The right-hander struck out five and walked none.
HOUSTON - Craig Biggio had a triple and three RBIs and Houston snapped a seven-game losing streak.
Lance Berkman, Mark Loretta and Adam Everett each had two RBIs and the Astros shook out of an offensive slump with their highest run total of the season. Houston came into the game batting only .240 and had scored a total of 11 runs in its previous five games.
Chris Sampson (3-1) struck out eight, his highest total in seven career starts.
PHILADELPHIA - Miguel Cabrera had a career-best five hits for Florida and Dontrelle Willis won despite struggling through 6 1-3 innings.
Cabrera had four singles and his seventh homer of the year. Josh Willingham added a three-run home run and Dan Uggla also went deep for the Marlins, who have averaged 8.2 runs when Willis is on the mound.
Willis (5-1) allowed nine hits and five runs. He has a 5.35 ERA in six starts.
Aaron Rowand extended his career-best hitting streak to 16 games for the Phillies.
WASHINGTON - Carlos Beltran and David Wright delivered two-run hits in the 12th inning for New York.
Beltran's double down the first-base line off Ryan Wagner snapped a 2-2 tie, and Wright's single to left tacked on two more runs. Saul Rivera (0-1), who loaded the bases in the 12th before being removed, took the loss.
Aaron Sele (1-0) got four outs to earn the win, and Billy Wagner came on to pitch the 12th in a non-save situation.
SAN DIEGO - Trevor Hoffman rebounded from two straight blown save opportunities to close the door on Los Angeles, sealing the win for Greg Maddux and San Diego.
After blowing save chances in consecutive appearances for the first time in 10 years, Hoffman pitched a perfect ninth for his fifth save in seven chances, and the 487th of his career.
Maddux, meanwhile, retired his final 14 batters.