Perkins, who was under contract through 2015, will earn $4.025 million in 2014, $4.65 million in 2015, $6.3 million in 2016 and $6.5 million in 2017. The deal also includes a $6.5 million club option for the 2018 season.
Perkins went 2-0 with a 2.30 ERA and 36 saves in 61 appearances last season. He was named to his first All-Star Game in 2013.
Originally selected by the Twins in the first round of the 2004 First-Year Player Draft out of the University of Minnesota, Perkins has a career record of 28-17 with a 3.89 ERA and 54 saves in 276 games with the Twins.