SAN FRANCISCO - Barry Zito shook off the worst outing of his big league career to give the Giants another impressive effort from their starting rotation.
Buster Posey's first home run of the season made sure it held up.
Zito and Chad Gaudin combined on a six-hitter and San Francisco beat the San Diego Padres 5-0 on Sunday to complete a three-game sweep.
Zito (3-1) bounced back five days after getting shelled by the Milwaukee Brewers when he failed to make it out of the third inning.
He allowed five hits in seven innings against the Padres, struck out four, walked one and did not give up run for the third time in four starts.
"If you let outings bleed into the next one, that's when things kind of go bad, so you just have to stick with your approach," Zito said after beating San Diego for the first time in nearly two years.
"I felt pretty good in my game and the results weren't there last (time). I felt pretty good today and the results were there. That's just the nature of the game."
Zito's outing followed gems by San Francisco starters Madison Bumgarner and Tim Lincecum, and helped the Giants sweep the Padres in a series of three games or more for the first time since Sept. 12-14, 2011.
San Diego, held scoreless for the last 21 innings, had opened its six-game trip by taking three straight from the Los Angeles Dodgers.
Zito retired 13 of his final 16 batters before leaving to a standing ovation after fanning Will Venable to end the seventh.
He had given up nine runs in 2 2/3 innings during Tuesday's 10-8 defeat at Milwaukee, ending his streak of 16 starts without a loss.
"Good for Z," Giants manager Bruce Bochy said. "It was a great job on Barry's part of bouncing back. You have to be resilient in this game."
Gaudin allowed one hit over the final two innings to complete the Giants second straight shutout.
San Diego didn't have an extra-base hit in the game and failed to get a runner to second base over the final seven innings.