Randy Johnson tossed seven shutout innings to win his fourth straight start and the Arizona Diamondbacks completed their first sweep in San Francisco in seven years, beating the Giants 7-2 on Sunday.
Conor Jackson had three hits, including a home run for the NL West-leading Diamondbacks, who have won five of six to move two games over .500 for the first time since June 24. Mark Reynolds added a two-run homer and Stephen Drew drove in a pair of runs.
Fred Lewis had four hits for the Giants, who have lost 12 of their last 16 games. Ivan Ochoa and Randy Winn each had two hits.
Johnson (8-7) earned his first win in San Francisco since July 16, 2002. He allowed nine hits, struck out two and did not walk a batter.
Johnson, who recorded career win No. 292, extended his scoreless inning streak to 15, his longest since 19 straight in September 2002.
The second-most prolific strikeout pitcher even threw a pitch so slow to Lewis in the first inning for a strike that the radar gun was unable to register its speed.
Barry Zito (5-13) became the first 13-game loser in the majors, giving up six runs and six hits in five innings. He walked five and struck out four in his fifth straight loss to the Diamondbacks.
Zito and Johnson, the 2002 Cy Young Award winners, were impressive through three innings. Arizona scored four times in the fourth, taking advantage of Zito's wildness.
Zito walked four in the inning, including Chris Snyder with the bases loaded. Tony Clark drove in a run with a groundout and Drew added a two-run single.
Johnson allowed hits in all but the fourth but pitched around trouble. Only two runners reached third during Johnson's tenure.
Jackson, a former Cal-Berkeley star, is hitting .478 (11-for-23) in San Francisco this year with four home runs, nine RBIs and 10 runs scored.
Winn scored San Francisco's first run when Aaron Rowand grounded into a double play in the eighth. John Bowker added an RBI single in the ninth.