The Toronto Blue Jays and Josh Donaldson have reached agreement on a two-year deal worth nearly $29 million to avoid arbitration, according to a source.