Bonds is in an oh-for-21 slump. He trails Hank Aaron's all-time home run mark by four.
Barry Zito won for the first time in seven starts. He's 7-and-9. Zito struck out a season-high eight to win for the first time since June fourth.
Randy Winn had three hits and Omar Vizquel added an R-B-I single for insurance in the eighth as San Francisco won for the first time in five tries after the All-Star break.