The deal is worth $8 million, a source told ESPN's Jeff Passan. Ray becomes the first of 181 free agents to get a new contract this offseason.
Ray accepted a 15% cut from his $9.43 million, one-year deal with Arizona last year, which turned into $3,492,593 in prorated pay in the pandemic-shortened season. The Diamondbacks traded him to the Blue Jays on Aug. 31, and he pitched in the playoffs for Toronto.
The 29-year-old lefty was a combined 2-5 with a 6.62 ERA this year. He is 49-51 with a 4.26 ERA in a seven-year big league career that began with Detroit, and was an All-Star with Arizona in 2017.
The Associated Press contributed to this report.