Patience is a virtue lately for Yasiel Puig.

It also doesn't hurt that the Los Angeles Dodgers right fielder carries a big stick.

Puig homered and drove in four runs Monday night, boosting the Dodgers to a 6-5 victory over the Miami Marlins at Dodger Stadium.

Puig's three-run homer in the fourth inning extended his hitting streak to a career-best 12 games and led the Dodgers (21-19) past the Marlins, who dropped their fourth in a row. Miami (20-19) is a woeful 3-14 on the road.

"I credit that to my work in the batting cage, a lot of patience at the plate, not rushing at my at-bats (and) taking my time," said Puig, who homered in back-to-back games for the first time this season. He is hitting .408 with four homers and 15 RBIs during his hitting streak.

"Obviously, Yasiel's homer was huge for us," Dodgers manager Don Mattingly said. "We've talked about him becoming more and more of an RBI guy as he's been more patient. He makes pitchers throw strikes. I think last year (he) was a lot more emotional. He's been less emotional and more tuned in, not trying to do too much and get a good pitch to hit."

Los Angeles starter Dan Haren, who retired 13 of the last 14 batters he faced, worked seven innings and allowed three runs on seven hits. He struck out two and issued one walk in 92 pitches (58 strikes). It was the 12th consecutive start in which Haren (5-1) limited the opposition to three runs or fewer. He also ended a personal four-game losing streak against the Marlins, beating them for the first time since July 10, 2009.

"Once Puig hit that ball, everyone was fired up," Haren said. "I just wanted to keep (the lead)."

Mattingly added, "Kind of typical Danny, really. He knows he's going to give up some hits, but he kind of just hangs in and continues to make pitches and keeps us in the game."

Closer Kenley Jansen retired the side in order in the ninth for his 12th save.

Miami starter Tom Koehler lasted 3 2/3 innings, giving up four runs, including Puig's home run, on six hits with five walks and a strikeout on 103 pitches (57 strikes). Koehler (3-3) and the Marlins' bullpen combined to walk 10 batters.

"The key is pitching to keep your team in the ballgame. Today, I didn't do that," said Koehler, who had thrown 15 scoreless innings in his previous two starts, including seven in a win over the Dodgers on May 2 at Marlins Park.

Pinch hitter Reed Johnson, a former Dodger, homered in the eighth inning off reliever Brian Wilson to pull the Marlins within 6-5, but Wilson and left-hander J.P. Howell navigated the remainder of the inning with no further damage.

"I thought we were all good tonight," Mattingly said. "We did a nice job as a team."

The Marlins got a run in the first when leadoff hitter Christian Yelich scored on a groundout by right fielder Giancarlo Stanton with two outs.

Haren's run-scoring single to left drove in center fielder Matt Kemp with two outs in the second to tie the score at 1.

Four consecutive hits in the third allowed Miami to regain the lead. Yelich deposited a 3-2 pitch off Haren into the left field bleachers for a solo home run. After second baseman Derek Dietrich doubled, Stanton followed with a one-out base hit to center, scoring Dietrich for a 3-1 lead.

Puig drilled the first pitch he saw from Koehler with two outs in the fourth an estimated 442 feet into the seats in left-center for a 4-3 Los Angeles lead. It was Puig's seventh home run.

Left fielder Andre Ethier's RBI single in the fifth scored Kemp for a two-run advantage. Puig's bases-loaded walk in the inning scored catcher Drew Butera, increasing the margin to 6-3.

NOTES: Marlins RHP Jose Fernandez was placed on the 15-day disabled list, retroactive to Saturday, due to a right elbow strain. Fernandez had an MRI exam in Los Angeles on Monday before flying back to Miami, where Marlins doctors will further examine him. LHP Dan Jennings was recalled from Triple-A New Orleans to fill the roster spot, and he pitched a one-third of an inning Monday night. ... Los Angeles CF Matt Kemp played in his 1,000 career game and reached base three times, going 1-for-2 with two walks, two runs and two stolen bases. ... The game drew a crowd of 37,187.