LAKELAND, Fla. -- Justin Verlander led a pet adoption drive Saturday morning, then sent Marlins hitters chasing pitches in the afternoon. His five scoreless innings set the tone for a pitching duel with Dan Straily before David Gonzalez's single and an error completed a two-run ninth and lifted the Tigers to a 5-4 win over the Marlins at Publix Field at Joker Marchant Stadium.

John Hicks started the ninth-inning scoring against Kelvin Marte with a game-tying RBI double, scoring Arvicent Perez, who had reached on a fielding error by shortstop Peter Mooney and advanced to second on a balk. Hicks then scored the winning run on Gonzalez's single and a throwing error from second baseman Justin Twine.

Verlander, who co-hosted Saturday's Grand Slam Pet Adoption Event with supermodel fiancee Kate Upton at the ballpark before the game, mixed his mid-90s fastball with an effective slider and breaking ball to keep Marlins hitters off-balance. He struck out four batters, including a nasty sequence of a 94-mph fastball, 79-mph changeup and 89-mph slider to fan Ryan Jackson in the second.

"I'm throwing everything," said Verlander, who stretched out to 80 pitches with two starts left this spring. "Sequencing is probably a little different than it would be [in the regular season], but I'm throwing everything, some good ones, some not-so-good, but still ironing things out."

Straily, meanwhile, showed off the change of speeds and pitching acumen that led the Marlins to acquire him from the Reds in an offseason trade. Alex Presley, who replaced J.D. Martinez in the first inning -- after the Tigers right fielder sustained a mid-right-foot sprain while making a shoestring catch to end the inning -- hit a fourth-inning home run for the only tally off Straily, who countered Detroit's three hits with six strikeouts over five innings.

Video: MIA@DET: J.D. Martinez injured making catch in 1st

"Dan was good, and their guy [Verlander] was pretty good," Marlins manager Don Mattingly said. "Once those guys came out of the game, obviously, the runs came up a little easier."

Three singles and a hit-by-pitch pushed the Marlins ahead in the sixth against reliever Alex Wilson, who gave up a three-hit inning for the third consecutive outing. Hood's single tied the game and moved the go-ahead run into position, but Wilson used a double-play grounder to avoid a breakout inning despite allowing a second run. Andrew Romine tripled and scored on a Justin Upton single in the bottom of the inning, but Moises Sierra's solo homer off Justin Wilson in the seventh moved Miami back in front.

Mikie Mahtook tripled and scored in the bottom of the seventh to continue the back-and-forth battle before Telis' ground-ball single off Mark Lowe gave the Marlins a short-lived lead.

Dietrich ready for any challenge Marlins give him

Marlins Up Next: The Marlins have a split-squad day on Sunday. The Nationals will visit Roger Dean Stadium at 1:05 p.m. ET, with Adam Conley starting for Miami against Stephen Strasburg. At Port St. Lucie against the Mets -- live on MLB.TV at 1:10 -- Jose Urena, competing for either a starting or long-relief spot, gets the starting nod. Jacob deGrom will go for New York.

Tigers Up Next: Detroit will face Baltimore at 1:05 p.m. ET on Sunday in Sarasota, live on MLB.TV. Matt Boyd (1-1) will start for the Tigers in a bid for his second straight win. Kevin Gausman is scheduled to take the mound for the Orioles.

Watch every out-of-market regular-season game live on MLB.TV.