The contract is a two-year deal, includes an option and financial terms were not disclosed, but ESPN.com's Buster Olney reports that Arroyo will get at least $23.5 million. He will receive $9.5 million this season and 2015, a $11 million club option for 2016 with a $4.5 million buyout.
The Los Angeles Dodgers and Baltimore Orioles were also reportedly interested in signing Arroyo.
Arroyo, 36, spent the last eight seasons with the Cincinnati Reds. He went 14-12 with a 3.79 ERA and 124 strikeouts last season.
Arroyo has been a durable starter, taking the mound over 30 times in each of the past 10 seasons and has pitched 199 innings or more in nine of those years.