Josh Beckett (1-1) was superb over 6 1/3 innings, allowing one unearned run on four hits while striking out six.
Miami starter Jacob Turner (0-1) was saddled with the loss after going 5 1/3 frames and giving up five runs -- four earned -- on eight hits.
Marcell Ozuna had the lone RBI for the Marlins, who have lost five straight.
Los Angeles finally opened the scoring with in the sixth. Following an out from Beckett, Dee Gordon doubled to right and Puig walked. Ramirez then doubled to make it a 2-0 game.
Gonzalez followed with a double that plated Ramirez, and Kemp knocked in Gonzalez with a single.
Justin Turner capped the scoring in the frame with a sacrifice fly to right.
Miami got one back in the top of the seventh, with Garrett Jones hitting a double and Ozuna driving him in with a sacrifice fly to right.
Two batters after Chone Figgins was hit by a pitch in the bottom of the seventh, Puig lifted a double into center that made it 6-1.
Drew Butera's RBI single in the eighth accounted for the final margin.