Zito (2-2) followed up six scoreless innings in Colorado on Monday with 7 1-3 more against the Diamondbacks, the first time he has had consecutive scoreless starts since winning the AL Cy Young Award with Oakland in 2002.
Bonds provided the offense with a home run to lead off the second inning against Edgar Gonzalez (1-2) that left him 17 homers away from breaking Hank Aaron's career record of 755.
San Francisco has won four straight and seven of nine.
CINCINNATI - Cole Hamels had a career-high 15 strikeouts in his first complete game and the Phillies turned the first triple play in the major leagues this season.
Hamels (2-0) allowed five hits and walked two.
The Phillies backed Hamels with their first triple play since May 15, 1999, against the New York Mets. With Josh Hamilton on second base and Edwin Encarnacion on first in the fifth inning, David Ross hit a grounder to Phillies third baseman Abraham Nunez, who stepped on third to force Hamilton and threw to second baseman Chase Utley to force Encarnacion for the second out.
Utley's relay to first baseman Wes Helms caught Ross by a step.
NEW YORK - Oliver Perez struck out nine and walked none in an impressive bounce-back performance, and Carlos Beltran had four hits for the Mets.
The Mets got big home runs from backups Ramon Castro and Damion Easley. Jose Reyes also homered off Chuck James (2-2).
Perez (2-1) gave up two runs and nine hits in 6 2-3 innings, while James allowed six runs and 10 hits in 5 1-3 innings.
CHICAGO - Cubs right-hander Jason Marquis shut out his former team on seven hits over seven innings and Michael Barrett hit a three-run homer.
Marquis (2-1) won 42 games in three seasons with the Cardinals before signing a three-year, $21 million free-agent deal with the Cubs in the offseason.
Barrett homered with two outs in the first following singles by Matt Murton and Derrek Lee.
MIAMI - Hanley Ramirez and Jason Wood homered to help Florida snap a six-game losing streak.
Anibal Sanchez (2-0) pitched five innings for the Marlins, giving up three runs and five hits.
Matt Chico (1-2) allowed five runs and six hits in 4 2-3 innings for Washington.
MILWAUKEE - J.J. Hardy hit two homers and drove in three runs to help the Brewers end Houston's five-game winning streak.
Chris Capuano (3-0) pitched a season-high six innings for the win, allowing four runs and four hits. He struck out six and walked six.
Morgan Ensberg homered for Houston, which dropped to 6-2 on the road.
DENVER - Marcus Giles had four hits, including two doubles, as San Diego beat Colorado.
Clay Hensley (1-3), bothered by a blister on the tip of his right middle finger his past three starts, gave up two runs on 10 hits in six innings.
Adrian Gonzalez hit a solo homer in the third and Brian Giles drove in two runs and had two hits for the Padres.