The deal includes a club option for 2023 and will buy out two years of free agency, Passan adds.
Sano's deal is worth $30 million, with his salary totaling $27 million during the first three years, followed by a $14-million club option with a $3-million buyout, reports MLB Network's Jon Heyman.
Sano, 26, hit .247/.346/.576 with 34 home runs and 79 RBIs in 105 games last season.
Over five big-league seasons, the Dominican slugger owns a .245/.338/.498 slash line with 118 home runs and 315 RBIs.
He was an All-Star for the Twins in 2017 and finished third in American League Rookie of the Year voting in 2015.