Cardinals 2, Mets 0 – Roger Dean Stadium, Jupiter, FL (Boxscore)

Pitching

Marcus Stroman struck out Paul Goldschmidt and Yadier Molina following a one-out single via Matt Carpenter in a scoreless first but Tyler O’Neill took a middle-outside Stroman sinker deep to center field to lead off the second, giving the Cardinals a 1-0 lead.

Rangel Ravelo walked and Lane Thomas singled off the 28-year-old with two outs to end Stroman’s day. Right-hander Stephen Villines struck out Dexter Fowler looking to put out the fire.

Left-hander Stephen Gonsalves negated two baserunners with a 6-4-3 inning-ending double play off the bat of Molina in the third and set down the Cardinals in order in the fourth. The 25-year-old former top-100 prospect was claimed off waivers from Minnesota earlier this offseason.

Righty Pedro Payano, 25, navigated around a hit-by-pitch and a Nolan Gorman single in a scoreless fifth, striking out Austin Dean to end the fifth and worked around a Dylan Carson single in another clean frame in the sixth.

Matt Blackham, a 27-year-old right-hander, pitched a perfect seventh and Yefry Ramirez, a 26-year-old righty, recorded two strikeouts in a scoreless eighth.

Offense

J.D. Davis cranked a two-out double into right field off St. Louis right-hander Jack Flaherty in the first inning, Luis Guillorme singled on a Flaherty four-seamer in the second, and Jake Hager, playing second base, singled off Dakota Hudson to lead off the third but all were left stranded.

St. Louis retired eight consecutive Mets hitters before Rene Riviera’s one-out walk in the fifth.

Brandon Nimmo was hit by a Brett Cecil pitch leading off the sixth and was quickly removed from the game for a pinch-runner (Johneshwy Fargas, who stole second). He sprinted to first before coming out.

Mets minor-leaguers Edgardo Fermin drew a leadoff walk in the seventh and Wagner Lagrange, 24, and Jake Mangum, 23, both singled with one out in the eighth, all to no avail.

Fermin and Braxton Lee singled in the ninth but the Mets couldn’t build off the rally.

Marlins 5, Mets 3, Clover Park, Port St. Lucie, FL (Boxscore)

Pitching

Rick Porcello allowed a run to cross in the first — his only inning of work — after Garrett Cooper singled home Marlins center fielder Monte Harrison, who singled and swiped second base to get into scoring position.

Miami’s Harold Ramirez led off the second with a long homer to left field off Mets left-hander Chasen Shreve, cutting the Mets’ lead to 3-2. Shreve then hit Sean Rodriguez with a pitch, JJ Bleday singled, and Miami tied the game on a Chad Wallach sacrifice fly.

Ramos threw out Bleday trying to steal second — an encouraging sign — but Shreve’s first spring performance wasn’t as hopeful.

Corey Oswalt allowed one-out base hits to Isan Diaz and Cooper in the third but induced a 6-4-3 double-play via Lewis Brinson to escape the jam and got a double-play ball courtesy of Bleday to end the fourth.

Left-hander Daniel Zamora drew another inning-ending double-play for the Mets in the fifth, getting top-prospect Victor Victor Mesa to ground out to Gimenez at shortstop, working around a Jazz Chisholm one-out base hit.

Ryley Gilliam retired Miami in order in the sixth and Kevin Smith did the same in the seventh. Both righties are looking to make an impact at the major league level this season.

Right-hander Adonis Uceta allowed a walk and a base hit in the eight before allowing a go-ahead single to Lewin Diaz, putting Miami ahead 4-3.

Ryder Ryan, the righty acquired in the trade that sent Jay Bruce to Cleveland in 2017, allowed a solo home run to Jerar Encarnacion to give the Marlins a 5-3 lead in the ninth but also struck out two in his spring debut.

Offense

Jeff McNeil led off the bottom of the first with an opposite-field single off Miami righty Jordan Yamamoto. Pete Alonso reached on a sun-lost fly ball in center field and Michael Conforto singled to load the bases for Wilson Ramos.

Ramos shot a wind-aided ground-rule double into the right-field corner, giving the Mets an early 2-1 lead, and Matt Adams scored Conforto on a sacrifice fly to make it a 3-1 game.

Andres Gimenez and Jake Marisnick contributed back-to-back one-out singles in the fourth but the Mets couldn’t capitalize.

The Mets didn’t have another baserunner until Jeremy Vasquez‘s walk in the eighth.

On Deck

St. Louis heads to Port St. Lucie to take on the Mets again on Sunday. First pitch is scheduled for 1 PM ET and the game will be televised on SNY.