Adam Wainwright is staying with the St. Louis Cardinals after reaching agreement on a one-year deal, sources confirmed with ESPN on Thursday.