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: Right-hander Mike Pelfrey will be on the mound on Monday when the Twins travel to Clearwater to face the Phillies at 12:05 p.m. CT on MLB.TV. It will be Pelfrey's fourth Grapefruit League start, and he brings a sparkling 1.00 ERA to the hill.
Joe Frisaro is a reporter for MLB.com. He writes a blog, called The Fish Pond. Follow him on Twitter @JoeFrisaro. This story was not subject to the approval of Major League Baseball or its clubs.