The deal is worth $1.5 million, according to multiple reports.
St. Louis needed another infielder after losing shortstop Jhonny Peralta for the first few months of the season with a torn ligament in his left thumb, which required surgery to repair.
"We do feel like there is an opportunity to add depth, because Tejada was recently released, and for us it made sense to pursue this," Cardinals general manager John Mozeliak said, according to MLB.com. "I just think it makes our club stronger overall, and ultimately it then gives (manager) Mike (Matheny) the flexibility to utilize the different infield positions until Peralta gets back."
Tejada had returned healthy this spring training after suffering a fractured fibula in his right leg on a slide from Chase Utley of the Los Angeles Dodgers during Game 2 of the National League Division Series.
Tejada hit .261 with three homers and 28 RBIs in 360 at-bats last season.
Had he not been released by the Mets, Tejada was due to earn $3 million this season. By releasing him more than 15 days before Opening Day, the Mets were obligated to pay him slightly less than $500,000.