Terms weren't revealed, but the deal has a $5.5 million guarantee, according to Sportsnet, and includes $4.5 million in performance bonuses for appearances and awards.
Yates, 33, pitched only 4⅓ innings last season for the San Diego Padres before undergoing season-ending surgery in August to remove bone chips from his right elbow. Before the surgery he struggled in his six appearances, going 0-1 with a 12.46 ERA and two saves.
Yates was one of baseball's best relievers the previous two seasons for the Padres, and led the majors in 2019 with 41 saves. He also had a 1.19 ERA that season in 60 appearances and was selected as an All-Star for the first time.
In 2018, he posted a 2.14 ERA in 65 appearances and had 12 saves.