Jose Fernandez struggled in his last tuneup for opening day as the Miami Marlins beat the St. Louis Cardinals 6-5 Tuesday.
The reigning NL Rookie of the Year gave up five runs in nine hits in 4 2-3 innings, struck out three and walked two. His next outing will be in Monday's opener at home against Colorado.
Cardinals starter Lance Lynn struck out eight and walked one in five innings, giving up three runs and five hits.
Juan Diaz hit his first spring-training homer and drove in two runs for the Marlins, who rallied from a 5-3, seventh-inning deficit. Casey McGehee hit his second exhibition homer for Miami, which is 5-0 against the Cardinals this spring training.
There was a 46-minute rain delay after the top of the sixth.