Villanueva, 29, was a versatile pitcher for the Toronto Blue Jays last season, appearing in 38 games and making 16 starts. He was 7-7 with a 4.16 ERA overall and posted a 3.24 ERA in 22 relief appearances, holding hitters to a .211 batting average.
Villanueva, who made $2.27 million last season, will either go into the Cubs rotation or be a part-time starter and long reliever. Villanueva, who spent parts of five seasons with the Milwaukee Brewers, becomes insurance for rehabbing starters Scott Baker and Matt Garza.
Sources told ESPN The Magazine's Buster Olney that the Cubs are close to signing Edwin Jackson to a four-year, $52 million deal, further bolstering the rotation. Jackson would join a group of starters that include Jeff Samardzija, Garza, Baker, Scott Feldman, Travis Wood and Villanueva.