Paul DeJong homered and drove in three as the Cardinals defeated the Royals 6-3 at Busch Stadium in the final tune-up before their season opener.
Tyler O’Neill added a two-run double and Miles Mikolas tossed four-innings of two-run ball in the start. Carlos Martinez notched the win in relief.
Bubba Starling and Salvador Perez homered for the Royals who went 0-3 in exhibition games.
Former first-round pick Foster Griffin was the losing pitcher, allowing two runs on three hits, two walks and a wild pitch, while retiring only three of the eight batters he faced.
Royals pitchers struggled with command again walking nine and hitting a batter.
The Cards kick off the season Friday night by hosting the Pirates. The Royals open the season Friday in Cleveland.