Rosario, 29, made $7.75 million last season, batting .257 with 13 homers and 42 RBIs with a .792 OPS in 57 games. He hit a career-high 32 homers with 109 RBIs in 2019 and was voted the team’s most valuable player in 2018.
Rosario, who was eligible for his third and final year of arbitration, became a free agent one season early after the Twins declined to offer him a 2021 contract.
Rosario is hitting .277 for his career with 119 home runs and 388 RBIs.
MLB Network first reported the deal.
The Associated Press contributed to this report.