The 30-year-old Schafer is one of the more intriguing stories in spring training. He spent six seasons in the big leagues as a speedy outfielder with the Braves, Astros and Twins, but is trying to reinvent himself as a pitcher after his career appeared to have ended.
Schafer felt soreness in his forearm over the weekend after struggling in exhibition games. The Cardinals said Tuesday that an MRI revealed the injury.
Schafer will have surgery on Friday, and it will be determined then whether he requires a ligament repair or a complete reconstruction.
The Cardinals invited Schafer to spring training as a non-roster invitee, intrigued by his versatility. He pitched in three levels of the minors for the Dodgers last year, going 1-1 with a 3.83 ERA in 40 games and averaging more than a strikeout per inning.
Schafer last played in the majors with Minnesota in 2015. He is a career .228 hitter with 103 steals.