Puig homered for the second straight game to give the Dodgers a 4-3 lead before adding a bases-loaded walk an inning later to extend the margin to 6-3.
Pinch-hitter Reed Johnson ripped a two-run homer in the eighth to bring the Marlins within one, but Kenley Jansen retired the side in order in the ninth to nail down his 12th save of the season.
LA starter Dan Haren (5-1) held Miami to three runs on seven hits over seven strong frames to pick up the win and added an RBI single at the plate.
Andre Ethier also drove in a run for the Dodgers, who dropped three of four in San Francisco over the weekend.
The loss was the least of Miami's worries on Monday, as the team placed star pitcher Jose Fernandez on the 15-day disabled list with a right elbow strain. The Marlins are still awaiting the results of an MRI, but early indications point to the reigning National League Rookie of the Year needing season-inning surgery on his pitching elbow.
With the Marlins in desperate need of a solid start, Tom Koehler (3-3) failed to deliver, giving up four runs on six hits and five walks in just 3 2/3 innings to absorb the loss. Koehler threw 103 pitches, just 57 of which found the strike zone.
Christian Yelich laced a solo shot and scored three times, while Giancarlo Stanton knocked in two runs for the Marlins, who have lost four straight.