For Miami, Giancarlo Stanton ripped an RBI double, and Michael Morse, on his 33rd birthday, chipped in with a two-run single. Dee Gordon also went 3-for-3 with a run scored for the Marlins.
Marlins right-hander Jarred Cosart, in line to be the No. 2 starter, got off to a shaky start, allowing four runs in the first two innings. Sporadic with his command, Cosart had four walks to go with two strikeouts.
"I can't be doing this my last start of Spring Training, basically," Cosart said. "Each one, I have to make some progression."
The Twins used a two-out rally to score in the first on Eddie Rosario's RBI single. In the second inning, Schafer had a two-run single, and Trevor Plouffe added a sacrifice fly.
Miami chipped back into it, scoring three off Hughes in the third inning. Gordon singled and stole second, and Martin Prado singled to left, putting runners on the corners. Stanton blistered an RBI double to left, and Morse swatted a two-run single to center.
"Overall, we swung the bats pretty well, second time through the order," Marlins manager Mike Redmond said. "We had a couple of chances to drive in some runs with Dee on third base that we didn't execute. But I thought we had some nice at-bats and came back rather quickly. So I was happy to see us make the adjustments.
"But the pitching sets the tone, and [Cosart] was slow and methodical."
Minnesota tacked on an unearned run in the fifth inning on Danny Ortiz's sacrifice fly off Nick Masset.
Up next: Mat Latos, 1-0 with a 2.57 ERA in his first two Grapefruit League starts, will face the Mets on Monday at Roger Dean Stadium at 1:05 p.m. ET on Gameday Audio. Jacob deGrom (1-0, 2.45) will start for New York. Miami is going with many of its regulars, like Stanton, in consecutive games.