Miguel Cabrera scored on J.D. Martinez's two-out, first-inning double to left-center, barely beating an offline relay. Cabrera had reached on a fielder's choice.
The second run of the game was also courtesy of Cabrera, who launched a homer into the St. Louis bullpen beyond the right-center-field fence with two outs in the third inning. Martinez followed with a walk, chasing Cardinals starter Carlos Martinez.
Martinez allowed two runs on four hits while striking out five over 2 2/3 innings.
"The changeup was great," Cardinals manager Mike Matheny said of Martinez's second spring start. "The slider was good. It was just fastball command that was a little off. But everything is coming out of his hand very nice. If he keeps doing that and is able to throw 3-2 changeups and 3-2 sliders for strikes, he's going to be tough to face. The fastball command will be there."
Nate Schierholtz blasted a no-doubt line-drive homer -- his second this spring -- to right field off Seung Hwan Oh in the fourth inning to increase the Tigers' lead to 3-0. JaCoby Jones added a solo homer to left off Marco Gonzales in the seventh for the fourth Detroit run.
Cardinals left fielder Jeremy Hazelbaker launched a three-run homer in the eighth inning to pull St. Louis within a run, but Tigers righty Buck Farmer pitched a scoreless ninth to close it out.
Up next for the Cardinals and Tigers: After playing against one another in Lakeland on Thursday, the Cardinals and Tigers will square off again on Friday at 1:05 p.m. ET, this time at the Cardinals' home complex in Jupiter. Adam Wainwright, who has already been named the Cardinals' Opening Day starter, will make his third spring appearance. Brayan Pena, who hasn't played since Saturday due to arm tightness, is expected to be back behind the plate.
Matt Boyd will take the mound as he continues his quest for the fifth-starter job for the Tigers, who will bring Cabrera, Martinez, Nick Castellanos and Ian Kinsler for the game. Fans can tune in to watch live on MLB.TV.