Scherzer, who compiled a 16-7 record last season and played a key role in the Tigers' run to the World Series, has avoided arbitration with the contract.
The signing is worth $6.7 million, CBS Sports reported.
The five-year veteran was second in the major leagues last year with 231 strikeouts -- second only to teammate Justin Verlander -- and recorded a 3.74 earned run average.
Over 142 career games, Scherzer has amassed a 52-42 mark with a 3.88 ERA and 829 strikeouts.
Gal Gadot cast as Wonder Woman for 'Batman vs. Superman'
Jordana Brewster on Paul Walker: 'He was an enormous presence in my life'