Jhonny Peralta belted a two-run homer, while Miguel Cabrera had an RBI double, two hits and scored two runs for Detroit.
Rob Brantly delivered a home run off Porcello for the Marlins.
Miami lefty Wade LeBlanc gave up three runs in the first inning, and finished after five innings while allowing four runs.
Detroit struck quickly off LeBlanc, collecting four hits in the first inning.
Torii Hunter and Cabrera had back-to-back one-out doubles, opening the scoring. With two outs, Peralta's homer to right-center gave the Tigers three runs before Porcello threw a pitch.
In the second inning, the Marlins pushed two runs across, making it a 3-2 game.
Placido Polanco doubled and scored on Justin Ruggiano's one-out, RBI single. With two outs, Adeiny Hechavarria ripped a run-scoring triple to right-center.
A two-out, RBI single by Alex Avila in the third inning gave the Tigers a two-run cushion.
Brantly's first homer of Spring Training, a solo shot to right field in the fourth inning, once again made it a one-run game.
Up next for the Marlins: Henderson Alvarez is set to make his final Grapefruit League start, facing the Nationals at Roger Dean Stadium. In Tuesday's 1:05 p.m. ET contest on MLB.TV, Washington is throwing Dan Haren. Juan Pierre, who was given a day off on Monday, is expected to be back in the lineup.
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.