The deal is pending a physical.
Roark, 33, posted a 4.35 ERA in 31 starts spanning 165.1 innings for the Cincinnati Reds and Oakland Athletics last season.
He posted a WHIP of 1.397 with 158 strikeouts and 28 home runs allowed.
Roark has made at least 30 starts in five of the past six seasons, topping out at 210 innings in 2016.
The native of Wilmington, Ill., gives the Blue Jays another stabilizing source of innings for a rotation that also includes Chase Anderson and potentially Matt Shoemaker and one of Trent Thornton or Ryan Borucki.