Perkins, 31, was already under contract through the 2016 season. As part of the new deal, the team has a $6.5 million option for 2018.
Over the past three years, Perkins has posted a 2.45 ERA with 220 strikeouts over 194.2 innings. Last season, Perkins went 2-0 with a 2.30 ERA with 36 saves and 77 strikeouts in 62.2 innings for the Twins, who finished 66-96 for the second consecutive year.
Get expert analysis, unrivaled access, and the award-winning storytelling only SI can provide - from Peter King, Tom Verducci, Lee Jenkins, Seth Davis, and more - delivered straight to you, along with up-to-the-minute news and live scores.