The Vancouver Whitecaps signed striker Lucas Cavallini from Puebla, according to ESPN.
The Whitecaps will pay the Mexican club a $6 million transfer fee.
The 26-year-old Canadian international has scored 30 goals in 81 matches for Puebla.
Cavallini has also scored 11 goals in 17 appearances for Canada.