Arroyo, who turns 37 later this month, will make a base salary of $9.5 million this season and in 2015, according to the source. The deal includes an $11 million club option for 2016 and a $4.5 million buyout. If the Diamondbacks decline to exercise the option, he'll receive a guaranteed $23.5 million, or $30 million if the team exercises the option.
The Baltimore Orioles also made a serious run at Arroyo, who was one of the top remaining pitchers left on the free agent market.
Arroyo, 36, is 138-127 with a 4.19 ERA over 14 major league seasons with Pittsburgh, Boston and Cincinnati. He's pitched for the Reds since 2006, when they acquired him from Boston in a trade for outfielder Wily Mo Pena, and was 14-12 with a 3.79 ERA and 124 strikeouts last season.
Arroyo's trademark is durability. He's surpassed 200 innings in eight of the past nine seasons. The lone exception was 2011, when he battled Valley Fever, mononucleosis and a case of the whooping cough that caused him to lose 17 pounds. But he still made 32 starts and logged 199 innings, and he has yet to appear on the disabled list in the big leagues.
Arroyo joins Patrick Corbin, Wade Miley, Trevor Cahill and Brandon McCarthy in Arizona's projected 2014 rotation. Randall Delgado is also in the mix, and top prospect Archie Bradley is working his way through the team's system and could be in the big leagues sometime this season.