Terms of the deal for the 30-year-old right-hander weren't announced, but the Minneapolis Star Tribune reported it was worth $49 million with a guaranteed $12 million salary per year and a club option for 2018.
The free-agent signing is the richest-ever for the Twins, far surpassing outfielder Josh Willingham's three-year, $21 million deal in 2012.
Nolasco went 13-11 with a 3.70 ERA in 34 games (33 starts) over 199 1/3 innings split between Miami and the Los Angeles Dodgers last season.
His best stint came with the Dodgers, whom he helped to the National League West championship with an 8-3 mark and 3.52 ERA in 16 appearances.
Nolasco sports a career 89-75 record and 4.37 ERA since his 2006 major league debut.