The team announced the deal on Sunday. The 26-year-old Torres hit .257 with 24 homers and 76 RBIs in 140 games for the AL East champions last year.
Torres had asked for a raise from $6.25 million to $10.2 million in arbitration, and the Yankees offered the second baseman $9.7 million.
Torres made his big league debut with New York in 2018. The two-time All-Star is a .265 hitter with 98 homers and 310 RBIs in 576 career games.