Multiple media outlets reported that the deal is worth $1.5 million.
Villanueva, 32, was strictly a reliever for the St. Louis Cardinals last year, though he has a history of pitching both as a starter and a reliever.
In 35 appearances in 2015, Villanueva went 4-3 with two saves and a 2.95 ERA.
He began his major league career with the Milwaukee Brewers in 2006. After five seasons in Milwaukee, Villanueva pitched for the Toronto Blue Jays (2011 and '12) and Chicago Cubs (2013 and '14) before signing a free agent deal with the Cardinals last February.
In 425 major league games (76 starts), Villanueva has a 49-53 record with 10 saves and a 4.18 ERA.
The Padres also released right-hander Marcos Mateo so he could sign with the Hanshin Tigers of Japan's Central League, the San Diego Union-Tribune reported. Mateo, 32, went 1-1 with a 4.00 ERA in 26 appearances for the Padres last year. He missed the final two months of the season due to a neck strain.