The deal, announced by the team Tuesday, is worth US$4 million and includes a club option for the 2020 season.
Galvis batted .248 with 31 doubles, five triples, and 13 home runs in 162 games for the San Diego Padres last season.
A seven-year veteran, Galvis has batted .246 with a .290 on-base percentage over 804 major league games. The 29-year-old has 65 career homers and 300 runs batted in.
Toronto designated right-handed reliever Danny Barnes for assignment to make room for Galvis on the 40-man roster.
Galvis, a native of Venezuela, spent his first six major league seasons with Philadelphia before being traded to the Padres in December 2017.