Puig belted a solo homer in the first inning for an early Dodgers lead but played a bigger role in the eighth with the game tied 1-1.
George Kontos came in to pitch and Puig (3-for-4) greeted him by lining a hit past diving shortstop Brandon Crawford and into the left field, chasing home Punto with the go-ahead run.
Hanley Ramirez added an insurance RBI later in the frame and Los Angeles went on to record a win in the opener of a three-game set.
Paco Rodriguez (2-2) earned the decision after setting down the final two batters in the top of the eighth and Kenley Jansen struck out the side in the ninth for his fifth save.
Dodgers starter Hyun-Jin Ryu yielded one run on eight hits over 6 2/3 innings.
Bumgarner (7-5) ended up allowing three runs (two earned) on five hits over seven full frames.
Andres Torres got the Giants' only RBI.