The switch-hitting Martinez played for the Boston Red Sox last season.
The Boston Globe said this week the deal in Detroit would be worth $50 million.
"We are thrilled to add a premier hitter like Victor Martinez to the Tigers organization," said Dave Dombrowski, the chief executive officer, president and general manager of the Detroit club. "Our top off-season priority was to add a proven bat in the middle of our lineup and Victor is an established .300 hitter and run-producer at the major league level."
The 31-year-old Martinez hit .302 with 20 home runs and 79 RBI in 127 games with the Red Sox last season. He has batted .300, hit 131 homers and knocked in 638 runs in 1,004 games in the majors.
Martinez played for more than seven seasons with the Cleveland Indians before going to Boston.
"We expect Victor to be in our lineup on a daily basis, serving primarily as our club's designated hitter and catching two to three times a week," Dombrowski said. "He also has the ability to fill in at first base and his versatility allows us to keep a premier bat in our lineup every day."