The 25-year-old right-hander can earn $100,000 each for 12 and 15 starts, $150,000 for 18, $200,000 for 21, $300,000 for 24, $350,000 for 26 and $400,000 for 28 under the deal announced Dec. 28.
An NL All-Star in 2014, Alvarez went 0-4 with a 6.45 ERA in four starts for Miami during a 2015 season shortened by two stints on the disabled list for injuries to his right shoulder. He had season-ending surgery July 28 and became a free agent when the Marlins failed to offer him a 2016 contract.
Alvarez is 27-34 with 3.80 ERA in 92 starts in five big league seasons with Toronto and Miami. He pitched a no-hitter against Detroit on the final day of the 2013 season.