The 39-year-old's contract -- reported to be for around $20 million -- also includes a club option for the 2016 season.
Nathan comes to the Tigers after two seasons with Texas. Last season he posted 43 saves, going 6-2 with a 1.39 ERA for Rangers.
He had signed with Texas in 2011 following reconstructive elbow surgery that caused him to miss all of the 2010 season.
Nathan spent seven seasons with the Minnesota Twins from 2004-11, compiling 260 saves to become the team's all-time leader.
"We are pleased to be adding a premier closer to our ballclub," Tigers General Manager David Dombrowski said. "Joe solidifies the back end of our bullpen and fills what we identified as a big need on our pitching staff."