Bumgarner (7-4) handled the Padres on three hits, allowing a pair of runs while overcoming four walks. The left-hander notched a third win in three starts with the 111-pitch performance.
Jake Dunning tossed a scoreless eighth and Sergio Romo fired a 1-2-3 ninth for his 18th save as the Giants took the rubber match of a three-game series.
Luke Gregerson (4-3) entered and pinch-hitter Hector Sanchez singled, sending Abreu to third. Gregor Blanco, hitting for Andres Torres, then belted a pitch to the base of the wall in right-center field for a two-run triple.
Marco Scutaro followed with an RBI single and the Giants went on to record the victory.
Jesus Guzman and Wil Venable each homered for the Padres in a game that featured a bench-clearing incident in the second inning when Bumgarner threw a pitch behind Guzman.
Wisconsin business offering 'therapeutic cuddling' forced to close
Reindeer recovered after escaping from Santa during lighting ceremony