Peavy won his NL-leading 19th game, and the Padres spoiled Bonds' home finale for San Francisco with a much-needed 11-3 victory against the Giants on Wednesday night.
These resilient Padres might just make a push for a third consecutive NL West crown.
San Diego remained one game up on Philadelphia and Colorado in the NL wild-card race and pulled within one game of division-leading Arizona after the Diamondbacks lost 5-1 at Pittsburgh.
"At the start of the game there was a little different energy because of Barry's farewell," said Padres manager Bud Black, a former teammate of the slugger. "But our guys know our goal."
Peavy (19-6) got Bonds to ground out weakly in his first two at-bats and to flyout to the warning track in right-center to end the sixth -- and that was it for the home run king in his final game as a Giant in the club's waterfront ballpark. Bonds stopped at the mound for a hug and handshake from Peavy as he made his exit.
"He said, 'I love you.' I said it back," Peavy said. "That would be the only instance it would be OK to give up a home run. What a thrill, from 20 to 26 years old, and I see his team five times a year. This is going to be a very different feeling coming here without Bonds."
Peavy allowed two runs and five hits in seven innings, struck out one and walked one. The right-hander had two hits and an RBI himself, the fourth time this season he has had two hits in a game. He now has a career-high 16 hits this season and is batting .229 with seven RBI.
"He probably had his worst stuff of the year tonight," Josh Bard said. "He's found a way to win without his best stuff. That's where you start separating yourself as an elite player in this game."
Khalil Greene and Bard hit back-to-back two-run singles in the fifth inning, when San Diego got seven base hits and chased Giants starter Pat Misch. Bard and Geoff Blum had back-to-back RBI doubles in the second.
Kevin Kouzmanoff doubled in a run in the sixth with a drive down the left-field line, scoring Brian Giles from first as he beat Bonds' throw home. Scott Hairston hit a home run to lead off the eighth for the Padres, who will finish the season with four games at Milwaukee starting Thursday night.
Randy Winn hit a two-out solo home run in the first and pinch-hitter Nate Schierholtz added a sacrifice fly for San Francisco on a night when the city ushered out the Bonds era with little fanfare. The 43-year-old slugger has played 15 of his 22 major league seasons in San Francisco, but owner Peter Magowan told him last Thursday that he would not be brought back in 2008.
Bonds didn't hold a pregame press conference and wasn't honored on the field before the first pitch. He spoke to his teammates in the clubhouse, wishing them well and thanking them.
"It was awesome," Misch said. "The greatest player to talk to you and leave a message about what he knows about the game -- Barry Bonds. It was like talking to Willie Mays, Willie McCovey, like Babe Ruth being here."
When the final out was made, Bonds' teammates and even Padres pitcher Greg Maddux remained in the dugout to watch about a six-minute video tribute -- but the slugger was already on his way out, his locker completely empty. The Giants then threw autographed baseballs into the stands.
The seven-time NL MVP's flyout to center had some fans on their feet thinking this one might just clear the fence. But Brady Clark -- who also drove in a run -- made the play on the warning track, and Bonds made his exit to a standing ovation after greeting Peavy with a hug and handshake.
Bonds clapped his hands together in the air to salute the crowd, then came out for a curtain call after putting away his protective body armor.
Magowan was the emotional one afterward, fighting off tears.
"To see it all end, it's sad in a way," Magowan said. "Yeah, I'm choked up. We've been through a lot over these last 15 years, mostly very, very good times."
Misch (0-4), making his fourth major league start and 19th appearance, allowed eight runs and nine hits in 4 1/3 innings, struck out one and walked two. He led off the third inning by beating out an infield single for his first big league hit.
- Giants 1B Ryan Klesko was a late scratch with a wrist injury.
- San Diego's Adrian Gonzalez became the all-time single-season San Diego leader in extra-base hits on the road with his third-inning double. It was his 48th extra-base hit away in 2007 on the road, passing Greg Vaughn's 1998 record of 47.
- A female fan rushed onto the field and ran in Bonds' direction before the top of the sixth and security quickly chased her down and escorted her out. Bonds waved back at the woman after she waved at him. The crowd quickly started up with more chants of "Barry! Barry!"
- San Diego won the season series for the third time in the past four seasons (14-4).
- The Giants drew their 40th sellout and finished the season with an attendance of 3,223,215. San Francisco's 39-42 record at home marked just the second losing season here in the stadium's existence.