The Cardinals chipped away at Jose Fernandez, compiling nine hits off the Miami ace in 4 2/3 innings, and they held a 5-3 lead before the game was halted by rain midway through the sixth inning.
Lance Lynn limited the Marlins to three runs while striking out eight for the Cards, before he was lifted for a pinch-hitter after 91 pitches.
"I would say today my last inning was the best I've felt with the ball coming out of my hand," Lynn said. "As the spring goes on, you have to worry about finding that rhythm and things of that nature. The only way to do it is to keep pitching. I feel good."
Fernandez, Miami's Opening Day starter, allowed three runs in the first inning, and he had to labor while getting his pitch count up to 98. St. Louis got on the board quickly, with Kolten Wong singling to open the game and scoring on Daniel Descalso's triple. Matt Holliday added an RBI groundout, and Peter Bourjos delivered a run-scoring single.
"I wasn't throwing anything for a strike the way I wanted to," Fernandez said. "When I was, it was mask high."
The Marlins scored twice off Lynn in the third inning. Derek Dietrich and Garrett Jones each had run-scoring singles.
In the fourth inning, the Cardinals added two more runs, with one earned. Wong had an RBI single. Casey McGehee answered in the bottom of the fourth with a solo homer for Miami.
In the fifth, Bourjos' third hit of the game chased Fernandez.
Up next: Adam Wainwright, in his final start before taking the mound on Opening Day, will face the Nationals on Wednesday in a nationally televised Grapefruit League game. First pitch for the broadcast on MLB.TV and ESPN is scheduled for 12:05 p.m. CT. Wainwright shut Washington out over eight innings in his start last Friday. As he was in that game, Wainwright will be opposed by Washington's Gio Gonzalez on Wednesday.
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.