The contract totals $21.25 million, The Detroit Free Press reported.
Robertson, 31, a left-hander, has a 42-54 record and 4.53 ERA since joining the Tigers in 2003. He was 9-13 with an ERA of 4.76 last season.
"Nate has been a quality starter during his time with the Tigers," said Dave Dombrowski, the team's president and general manager. "We are excited to sign Nate to a long-term contract and we look forward to him being part of our rotation for years to come."