There were two rarities at Petco Park Friday night -- a 51-minute rain delay and the Padres popping above .500.
Coming off a big comeback win over the Los Angeles Dodgers, the Padres got another big team effort.
"Not unlike yesterday, you can point to a lot of guys who had a big part in this game," manager Bud Black said.
Hairston hit his 10th career homer against the Giants.
"It happens, man. I really can't say. It's just been working out that way," Hairston said. "I don't prepare any different when the Giants come into town."
With the Padres leading 4-2 with a runner on first and none out in the eighth, Hairston, the left fielder, made a nice leaping catch of Bengie Molina's fly ball near the top of the fence in left-center.
"He's the type of guy, when the game's on the line, he's going to drive the ball somewhere," Hairston said. "I was thankful that it stayed in the park tonight. I think it was right at the top of the wall. It could have gone either way. I know I didn't bring it back, that's for sure. I know it would have been at least a double off the wall if I didn't catch it."
In the bottom of the inning, Hairston hit a three-run homer to center off Merkin Valdez.
It's the first time the Padres (3-2) are above .500 since they were 8-7 last April 16. San Diego finished 63-99 last year, 21 games behind the NL West-winning Dodgers.
Shawn Hill (1-0) won his Padres debut while Zito (0-1) lasted only four innings in his first start of the season.
A light rain turned into a downpour by the bottom of the fifth inning. With it raining off and on, the umpires ordered the teams off the field after the bottom of the sixth.
Zito, who is 21-31 with the Giants since signing a $126 million contract in December 2006, gave up four runs and seven hits. He threw 93 pitches, striking out four and walking two.
"I was fired up a little bit and wanted to come out and get that first inning going," said Zito, who grew up in San Diego. "It's frustrating because I felt great tonight. I felt good in the pen. I've come a long way from last year and battled hard tonight. But I'm optimistic that I'll be back out there next Thursday being in control of myself."
San Diego made it 4-1 in the fourth when Giles singled in David Eckstein, who was aboard on a two-out double to left.
The Giants had four straight hits opening the sixth inning to chase Hill, but scored only one run. Molina hit a flare single to right for the third hit to bring in Edgar Renteria, who was aboard on a leadoff double. Pablo Sandoval singled to right to load the bases and chase Hill. Luke Gregerson came on and got Travis Ishikawa to ground to first baseman Gonzalez, who threw home to force Fred Lewis with catcher Nick Hundley throwing back to Gonzalez to complete the double play. Aaron Rowand struck out to end the threat.
"That's the turning point in the game," Giants manager Bruce Bochy said. "We had them on the ropes with good hitters up there and they got out of it."
Hill was signed during spring training, five days after being released by the Washington Nationals. He allowed two runs on seven hits in five innings, with three strikeouts and a walk.
There have been only 16 rainouts in 41 seasons of big league ball in San Diego. The most recent was April 4, 2006, against the Giants. ... There was a 29-minute rain delay last May 23 during a game against the Cincinnati Reds. ... The last two NL Cy Young Award winners will be pitching this weekend at Petco Park. Padres ace Jake Peavy, the 2007 winner, is scheduled to start Saturday night against Jonathan Sanchez, while San Francisco ace Tim Lincecum, last year's winner, faces Chris Young on Sunday. Peavy lost his opening day start to the Dodgers on Monday, while Lincecum struggled Tuesday in a win over Milwaukee, making it through just three innings. ... San Diego's three new starters -- Walter Silva, Kevin Correia and Hill -- have a combined 3.93 ERA through their first starts.