The Giants improved to 2-5 on their 10-game road trip while the Braves, who had a four-game winning streak end, finished a 6-2 homestand. They were denied their first four-game sweep of the Giants in Atlanta.
Zito (6-10) walked five batters but gave up only one run on Yunel Escobar's second-inning homer, and San Francisco scored four unearned runs in the eighth to break up a 1-1 tie.
Reliever Peter Moylan and right fielder Ryan Church committed throwing errors in the inning, which began with left-hander Mike Gonzalez leaving the game with an injury.
Gonzalez (3-3), who had ligament-replacement surgery on his left elbow in May 2007, suffered a left forearm contusion when struck by Nate Schierholtz's line drive to open the inning.
The ball bounced off Gonzalez's arm toward first base for a single, and Gonzalez left the game after wincing in pain when examined by trainer Jeff Porter. The Braves said X-rays were negative and Gonzalez was listed as day to day.
Peter Moylan replaced Gonzalez and gave up Travis Ishikawa's bunt single. Juan Uribe followed with a sacrifice bunt, and Moylan threw late to first as Schierholtz scored for a 2-1 lead. Moylan struck out Matt Downs and pinch-hitter John Bowker before giving up RBI singles to Randy Winn and Fred Lewis.
The Giants took a 1-0 lead off Kenshin Kawakami in the first when Lewis walked and scored on Pablo Sandoval's double down the third-base line.
Escobar's homer tied the game. He has four homers and 13 RBIs in eight games since the All-Star break.
Kawakami gave up four hits and one run in five innings.
Braves manager Bobby Cox was ejected by plate umpire Jeff Kellogg for arguing a called third strike on Escobar in the sixth. As Escobar took a step toward first base, apparently believing the pitch was high for ball four, Giants catcher Bengie Molina threw out Martin Prado as Prado tried to steal second base.
The ejection was the 146th of Cox's career, extending his major league record. Hall of Fame manager John McGraw is second with 131. It was his third ejection of the season.
The Giants have not been swept in four games by the Braves since June 21-23 in Milwaukee.
NOTES: The Braves activated 2B Kelly Johnson from the disabled list and optioned IF Brooks Conrad to Triple-A Gwinnett.