The Cardinals filled a need by getting a top-hitting shortstop a month after losing the World Series in six games to Boston. Pete Kozma and Daniel Descalso, although generally good fielders, are light hitters.
The deal was expected to be worth more than $50 million.
"We are pleased to announce that Jhonny has agreed to terms and I know he is equally excited to be joining the Cardinals," General Manager John Mozeliak said in a statement.
But the move drew a different reaction from a couple other big leaguers.
"It pays to cheat… Thanks, owners, for encouraging PED use," Arizona pitcher Brad Ziegler tweeted.
"Apparently getting suspended for PED's means you get a raise. What's stopping anyone from doing it," free-agent pitcher David Aardsma tweeted.
The 31-year-old Peralta was suspended 50 games last season as a result of Major League Baseball's investigation in the Biogenesis case involving performance-enhancing drugs. He returned to the Detroit Tigers in late September and played in the postseason, both in left field and at shortstop.
Vettel wins ninth race in a row
Sebastian Vettel won Formula One's season-ending Brazilian Grand Prix at Sao Paulo, matching Michael Schumacher's record of 13 victories in a year and equaling the nine consecutive wins of Alberto Ascari.
Vettel's Red Bull teammate Mark Webber was second in his final F1 race. Fernando Alonso of Ferrari was third.
Shanshan Feng of China seized control early and was flawless in the final round of the LPGA Tour season, closing with a six-under-par 66 to win the LPGA Titleholders at Naples, Fla., and claim the richest prize in women's golf.
Gerina Piller stayed within one shot and had a 10-foot birdie attempt on the final hole that would have forced a playoff. It narrowly missed, and Piller had to settle for a 69 and her best finish on the LPGA Tour.
Morten Orum Madsen of Denmark won his first European Tour title as Charl Schwartzel struggled in the final round of the season-opening South African Open at Johannesburg.
Madsen shot a 67 for a 19-under total of 269 and a two-shot victory, overtaking Schwartzel and Hennie Otto of South Africa.
Luke Donald shot a five-under 66 to repeat his title in the Dunlop Phoenix at Miyazaki, Japan, and earn his first victory of the year.
Heading into the final round with a two-stroke lead, Donald had seven birdies and two bogeys at the par-71 Phoenix Country Club to finish at 14-under 270 on the Japan Tour.
Kevin Kisner made a 15-foot par putt on the 18th hole for a two-over 74 and a one-stroke victory over Chesson Hadley in the Pebble Beach Invitational.
Kisner began the day with a two-stroke lead and finished at 13-under 275 in the tournament featuring 80 professionals from the PGA, LPGA, Champions and Web.com tours.
Hadley shot a 70.
Robbie Findley's first-half goal put a comeback out of reach for the Portland Timbers and Real Salt Lake advanced to the MLS Cup with a 1-0 victory over host Portland for a 5-2 aggregate advantage in the Western Conference finals.
Salt Lake took a 4-2 lead two weeks ago in Utah in the opener of the two-leg series. Real Salt Lake, which won the league championship in 2009, will play Sporting Kansas City for this season's title on Dec. 7.