Wieters' contract was selected Friday from Triple-A Memphis. He gets a $1.5 million salary while in the major leagues and $200,000 while in the minors. He can earn $500,000 in performance bonuses based on games: $100,000 each for 40, 50, 60, 70 and 80.
To clear a roster spot, the Cardinals designated left-hander Chasen Shreve for assignment.
A four-time All-Star with Baltimore from 2009 to 2016, Wieters was competing with Francisco Pena for the backup job.
Wieters, 32, spent the past two seasons with Washington. He hit .238 with eight homers and 30 RBIs last year, when he was sidelined between March 31 and April 12 with a strained left oblique muscle and between May 10 and July 9 with a strained left hamstring.
His contract with the Nationals paid $21 million over the two years.
Shreve, a 28-year-old left-hander, had a 5.00 ERA in eight spring training appearances with nine walks and five strikeouts in nine innings.