The one-year deal is for $2 million with $500,000 in incentives.
"Glad to be healthy and back with the Cubs. The support from the Cubs organization and the fans has been incredible. Thank you all so much," Stewart tweeted.
Chicago had non-tendered its Opening Day third baseman Nov. 30, but was open to him returning.
Stewart had a disappointing 2012 season due to a persistent wrist injury, playing only 55 games and hitting .201 with five home runs and 17 RBIs.
Stewart would have been arbitration eligible after making $2.237 million this past season. After cutting him loose, general manager Jed Hoyer said that the two sides had been in contact and that the Cubs still were interested in the 27-year-old Stewart.
Information from ESPNChicago.com's Bruce Levine was used in this report.