The Giants' last three games have given them the confidence it could happen, even though they trail NL West-leading Arizona by 10 games.
"Usually you do good when you're happy and positive," reliever Vinnie Chulk said.
Barry Bonds scored the winning run from second base on Pedro Feliz's single to left-center in the bottom of the 11th inning, leading the Giants a 4-3 victory over San Diego on Monday night.
Bonds lined a single to right for his lone hit of the night, then Feliz delivered the fourth game-ending hit of his career two batters later. Bonds was swarmed as he crossed the plate, sealing the Giants' third straight win on the heels of an eight-game skid. Feliz received quite a bear hug, too.
"It's good to see them happy like that," Feliz said. "It's good for us to come back in a game like that."
Chulk (3-2) pitched a perfect inning for the victory after Brad Hennessey struck out two in two scoreless innings, including Mike Cameron's third strikeout of the game in the 10th after Cameron had tied the score with a three-run homer in the eighth.
"After they hit the home run, you're thinking, 'Oh no, here we go again,"' Giants first baseman Ryan Klesko said. "You've got to stay positive, and that's how you snap out of that."
Fans jumped to their feet and chanted "Barry! Barry!" before he singled in the 11th off Justin Hampson (2-2), who made a nice play to throw out Ray Durham at third on Klesko's bunt following Bonds' single.
Pinch-hitter Dave Roberts, still weak from a horrible bout of food poisoning a day earlier, tied the game with a sharp single against Scott Linebrink in the eighth and then stole his 12th base of the year. Roberts kept himself hydrated and ate bananas during the game for the first solid food he'd had in a day and a half.
"It took about all I had right there," Roberts said. "I was happy to be able to contribute."
Bonds went 1-for-4 with a strikeout and an intentional walk, remaining at 749 home runs -- six from tying Hank Aaron's career record. The 42-year-old slugger grounded out on the first pitch he saw to end the first, then grounded out again for the final out of the third after Durham was plunked. Bonds struck out in the sixth and drew his 75th walk in the eighth.
Omar Vizquel had a rare home run before the shortstop left the game with tightness in his right groin. Feliz also drove in a run on a groundout, and the Giants produced a three-game winning streak for the first time since winning four in a row from May 20-23. San Francisco took the final two games of a three-game weekend series with the New York Yankees, then sent San Diego to its fourth loss in five games.
The Giants have played five of their 10 extra-inning games in June, and Towers said before the game he still thinks San Francisco will be in a much better spot in late July.
"I don't see the Giants staying 10 games or more out," Towers said. "They'll close the gap on the rest of us."
Vizquel homered for the second time this season and the third time at home in three seasons of playing in San Francisco's waterfront ballpark.
Cameron's home run off Steve Kline -- his ninth of 2007 -- sailed way over Bonds' head and deep into the left-field seats, spoiling a fine night by Giants rookie starter Tim Lincecum.
"It was a tough, tough loss," Cameron said.
Lincecum struck out eight in seven scoreless innings, but saw his winless stretch reach six starts since he beat Houston on May 22. Despite bouncing back with a strong outing, he is likely to have his next turn in the rotation skipped around upcoming off days Thursday and Monday.
"It's hard to pitch better than that -- seven shutout innings," Giants manager Bruce Bochy said. "He had good stuff tonight."
The Padres lost for the third time in their last nine road games.
A moment of silence and a tribute was held for former Giants and Padres pitcher Rod Beck, who was found dead in his home Saturday at age 38. One fan used black duct tape to spell out "BECK" on the back of an orange T-shirt. ... Vizquel's other home run this season came June 7 at Arizona. ... Cameron homered for the third time in eight games. ... Giants LHP Noah Lowry struck out looking as a pinch-hitter in the 10th. ... The game drew 41,140 fans, the 14th sellout of the season for the Giants. ... Roberts lost four pounds after vomiting all day Sunday and was held out of the starting lineup so he could regain some strength before playing again Tuesday night.