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.
Senate Democrats to pull all-nighter on climate change
Dennis Rodman pledges to end trips to North Korea