Wainwright had been eligible to become a free agent after the World Series.
The new agreement, first reported by foxsports.com, was confirmed by a person familiar with the negotiations who spoke on condition of anonymity because it had not yet been announced. The Cardinals scheduled a news conference for Thursday at their spring training camp in Jupiter, Fla.
A 31-year-old right-hander, Wainwright was 14-13 with a 3.94 ERA last year after missing the Cardinals' World Series championship season in 2011 because of elbow surgery.
Wainwright was 20-11 with a 2.42 ERA in 2010 and was an NL All-Star.
More Sports Headlines
Seahawks' Chancellor reportedly seeking more money, may hold out UW coach Petersen not looking forward to Boise return Big humpy run forecast by experts D-backs rock Felix, sweep M's with 8-2 win South Snohomish advances to West Region semifinals AquaSox fall to Volcanoes 5-4 in 10 after late miscue M’s notebook: Cano sits with abdominal strain Report: Phillies agree to trade Hamels to Texas
Our new comment system is not supported in IE 7. Please upgrade your browser here.