Arroyo, who turns 37 on Feb. 24, agreed to a deal paying him a reported $23.5 million. The Diamondbacks retain an option for the 2016 season, a release on the team's website stated.
The agreement had been previously reported but became official this week after Arroyo passed a physical examination.
Arroyo, a right-handed starter, was 14-12 with a 3.79 earned run average last season with Cincinnati. Arroyo is known for his reliability and has never been in the disabled list since breaking in with the Pittsburgh Pirates in 2000.
He's had at least 30 starts each of the last nine seasons, the second-longest active streak in baseball. The year before the streak began, he had 29 starts.
Arroyo played three seasons with Pittsburgh but spending three years with the Boston Red Sox. He's been with Cincinnati since 2006. He is 138-127 with a 4.19 ERA in his career.