Arizona announced the deal Sunday.
Jackson went 13-9 with a 3.62 ERA in 33 starts for the Tigers last season, making his first All-Star team. He was acquired in a three-team deal in December that also moved All-Star center fielder Curtis Granderson from Detroit to the New York Yankees.
Jackson gets an $800,000 signing bonus and a $4.2 million salary this season. He is slated to earn $8.35 million next year.
The 26-year-old Jackson is 38-39 with a 4.66 ERA in 139 career games over seven seasons with the Los Angeles Dodgers, Tampa Bay and Detroit.
Jackson, who earned $2.3 million last year, had asked for $6.25 million in arbitration while the Diamondbacks offered $4.6 million when the sides exchanged figures.
Jackson's deal leaves seven players still in arbitration, with hearings scheduled through Friday.