The Tigers announced the deal Wednesday.
The 33-year-old Davis spent the last three seasons with Toronto and hit .260 this year with six homers, 24 RBIs and 45 steals in 331 at-bats. He made $2.5 million this season. He will earn $5 million in each of the two years of this contract.
"Rajai's style of play adds another dimension to the makeup of our ballclub," Tigers general manager David Dombrowski said in a statement. "His speed, defense and bat provide us with more depth and versatility."
He gives the Tigers a speedy presence that the team has been lacking. The Tigers stole just 35 bases last season, fewest in the major leagues.
An eight-year major league veteran, Davis has 268 career stolen bases. He also has played for Pittsburgh (2006-07), San Francisco (2007-08) and Oakland (2008-10).
To create room on the 40-man roster, the Tigers designated right-hander Luis Marte for assignment.