Chris Denorfia knocked in the go-ahead run in the seventh and San Diego Padres held on for a 3-2 win, their second straight of this three-game set with the San Francisco Giants.
Denorfia was down 0-2 when he lined a base hit into center with runners at the corners, providing the San Diego bullpen with a lead it would not relinquish.
"I just didn't see the ball really well the first pitch, after that I just kind of had to battle," said Denorfia. "I tried to do whatever I could to go the ball into the outfield."
Tim Stauffer (3-1) tossed 1 2/3 frames while Luke Gregerson and Huston Street each turned in a scoreless inning as well, with the latter notching his 27th save.
The Giants had their chances in the later stages, but left a runner in scoring position in each of the last four innings. They went 3-for-15 in such situations for the game and left 11 on base.
"It's what hurt us," said Giants manager Bruce Bochy. "We were good early and it's just gone the otherway now."
Pablo Sandoval and Joaquin Arias drove in a run apiece for San Francisco, which saw Madison Bumgarner go a sixth straight start without recording a win. He went six innings, allowing two runs on five hits with six strikeouts.
Jake Dunning (0-2) replaced Bumgarner to start the seventh, but lasted only two batters. He walked Nick Hundley and was lifted in favor of Javier Lopez after Ronny Cedeno's single put runners at the corners.
Lopez got pinch-hitter Mark Kotsay to pop out, but Denorfia lined a base hit to left to put the Padres in front.
Robbie Erlin took the mound for San Diego, lasting 5 1/3 innings. He allowed six hits and two runs while striking out five.
Bumgarner had stifled the Padres through the first four innings, but served up doubles to Kyle Blanks and Hundley in the fifth to fall behind, 1-0. He then intentionally walked Cedeno to get to Erlin, who recorded his first hit and RBI with a single to center to give San Diego a two-run lead.
However, the Giants got the two runs right back in the next half-frame. Brandon Belt and Buster Posey began the inning with singles, with Belt scoring on a base hit from Sandoval and Posey coming in on Arias's liner to center off Stauffer.
Bumgarner has dropped four decisions during his winless streak ... Hector Sanchez replaced Posey in the seventh after he fouled a pitch off his hand ... The Padres signed outfielder Will Venable to a two-year contract extension prior to the game ... San Diego recalled pitchers Anthony Bass, Brad Boxberger and Brad Brach from Triple-A Tucson ... The Giants recalled infielders Nick Noonan and Ehire Adrianza, outfielders Francisco Peguero and Juan Perez and pitchers George Kontos and Dunning from Triple-A Fresno. The team also designated outfielder Kensuke Tanaka and pitcher Dan Runzler for assignment and added pitcher Heath Hembree and catcher Johnny Monell to the active major league roster.