A four-run fourth inning had put the Marlins in front, 4-1.
Giancarlo Stanton got the inning going with a double, and he advanced to third on Angel Castro's wild pitch on ball four to Garrett Jones. With runners on the corners, Jarrod Saltalamacchia lined an RBI single to center. Marcell Ozuna delivered a run-scoring double and Greg Dobbs lifted a sacrifice fly. Jeff Mathis' RBI double capped the frame.
The Cardinals pushed across two runs in the seventh off Carter Capps to trim Miami's lead to one run. Travis Tartamella singled and Rafael Ortega doubled, putting runners on second and third. Stephen Piscotty lifted a sacrifice fly, and the second run of the inning scored on a fielder's-choice grounder by Luis Mateo, who was credited with an RBI.
The Cardinals took the first lead of the game with an unearned run in the second inning on Randal Grichuk's triple over the head of Ozuna in straightaway center. Xavier Scruggs, who had reached on Dobbs' error, scored from first.
"I felt like it was a pretty good pitch," Marlins starter Nathan Eovaldi said. "I kept it down, but he smoked it."
St. Louis scratched out three hits off Eovaldi, who projects as Miami's No. 2 starter.
Eovaldi's fastball maxed at 97 mph, and he struck out one. The right-hander successfully pounded the zone. Of his 35 pitches, 27 were strikes.
"The main thing was to go out there and throw strikes, which I did," he said. "I threw a lot of them that were just centered. I feel like that's why they fouled off so many pitches. I wasn't throwing my offspeed more earlier in counts."
St. Louis right-hander Lance Lynn threw two scoreless innings, striking out one and allowing one hit.
"For the first time out, the ball felt good," Lynn said. "I came out of it healthy. That's all that matters. For me it's just getting the pitches in, getting the pitch count built up. Today it was just getting back out there for the first time getting used to it."
Up next: Left-hander Brad Hand is getting the start on Sunday at Viera, Fla., at 1:05 p.m. ET. Washington will start Doug Fister in his Grapefruit League debut. Initially, Henderson Alvarez had been set to make this start for Miami but is being skipped because of an infection on his right shin. This is a crucial Spring Training for Hand, who is out of options, so he must make the Opening Day roster or risk being lost by the organization.