Playing in perhaps his least-favorite ballpark, Bonds extended his homerless streak to one week and remained at No. 754, one shy of tying Hank Aaron's record.
The San Francisco slugger was hitless in three tries against the wily Maddux in a classic matchup Friday night, and finished 0-for-4 overall.
Hairston, who replaced injured left fielder Milton Bradley in the sixth, hit a tying three-run homer to left in the eighth. His winning shot came off Jack Taschner (2-1). Heath Bell (5-3) got the win.
It was the first multihomer for Hairston and his first game-winning shot.
"I was just telling myself to be aggressive," he said. "That's why you play the game, for moments like that. It was a playoff atmosphere."
With fans booing and cameras flashing all around the stadium during Bonds' at-bats, there was no historic shot at the big downtown ballpark.
Surrounded by an entourage and family members afterward, Bonds refused comment through security guards and one of his two publicists.
However, his 17-year-old son, Nikolai, said of the Bonds-Maddux matchup: "I've seen it before."
Padres manager Bud Black said he didn't believe Maddux was "thinking about pitching around him once. I think he was trying to get him out. It was great seeing two competitors like that at their age."
Bonds, 43, showed exactly why he's campaigned for the NL West rivals to bring in the fences.
Bonds' hardest-hit ball settled into Rob Mackowiak's glove in medium right field to cap an eight-pitch at-bat in the sixth. Fans sitting in the bleachers beyond the right-center field fence started to move forward in anticipation of one heck of a souvenir, but Bonds watched the vast outfield claim another fly ball.
Bonds made Maddux work, too, fouling off pitches in each at-bat during yet another great matchup in the 22nd season for both players. Bonds has homered eight times off Maddux, matching his most off any pitcher.
But Bonds has just three homers in 77 at-bats at Petco Park, which opened in 2004.
Commissioner Bud Selig watched from Padres owner John Moores' luxury box. Selig was on hand after spending Thursday home in Milwaukee and missing the Giants' series finale at Dodger Stadium.
Bonds' next chance is against Clay Hensley on Saturday night. Hensley, who will make his first start since May 2, has not surrendered a home run to Bonds.
Bonds' godfather, Hall of Famer Willie Mays, is expected to show up Saturday, too.
Maddux already leads a list of 444 pitchers to surrender a home run to Bonds, giving up eight along with four other pitchers. The 41-year-old with Hall of Fame credentials had no intention of serving up No. 9.
"You don't want to be that guy," Maddux said. "I know I didn't want to be that guy. It felt different, a little more important."
Bonds struck out looking at a full-count fastball to end the first inning with Dave Roberts on second base. Maddux grinned as he walked off the mound.
Bonds ended the third by grounding out to second baseman Geoff Blum, who was playing in shallow right as part of the "Bonds shift."
While it's an enticing 322 feet to the home-run porch down the right-field line, it's 400 feet to the gap in right-center and 401 to the left-center alley. It's 396 to straightaway center field.
Bonds thinks the downtown ballpark is just too darn big, period.
"That's just a shame. That place, they just need to move all of that in," he said last month.
Bonds loved hitting in the Padres' former home, Qualcomm Stadium, where he homered 39 times. His 42 homers in San Diego are his most in any road city, and his 86 against the Padres are his most against any team.
Maddux last served up a homer to Bonds on May 1, 1998, while he was pitching for Atlanta.
Mad Dog is stuck on a number, too. He lost his fifth straight decision since beating the Giants 7-4 at San Francisco on June 27. Maddux is 340-212 in his brilliant career.
Bonds was booed when the lineups were announced a few minutes before first pitch, with a smattering of cheers mixed in.
As the slugger started walking toward the plate with two outs in the first, the fans let him have it. Some held up asterisk signs.
Bonds seemed relaxed before the game, like he has for most of the season. He spent several minutes in the dugout chatting with a San Diego radio station producer, with his back to the field. He didn't see the nearly two dozen police officers take up positions along the left-field line.
Fans seemed almost mesmerized during batting practice. They cheered when the slugger lofted a few shots into the stands.
One fan hollered "Break it tonight," and two kids held up a sign that read: "Rock on Barry, Rock on." A group of teenagers behind San Diego's dugout had a sign that said: "Thrive for 755. We love you Barry."
Bonds waved to Giants fans at one point.
And he had at least one local pulling for him.
Isaias Salazar of nearby Ramona sat behind the Padres dugout holding a blown-up photo of his granddaughter and Bonds that was taken two years ago at Disney World. Next to the picture was a greeting of, "We Love you, Barry! #755." The girl's name is Tuesday Demargosian.
Salazar wore a Padres shirt and said he was a San Diego fan -- "and a Barry fan."
Longtime Padres fan Harry Maker wasn't changing his anti-Bonds stance.
"The real fans aren't here yet," said Maker, who's become well-known for razzing opponents from his seat in left field. "The real fans are going to boo him because they know the home run record is hallowed."
- Maddux allowed three runs and eight hits in 6 1/3 innings, struck out three and walked none.
- San Francisco's Mark Sweeney was thrown out trying to score the go-ahead run on Roberts' third double of the night, in the ninth.