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.
Perkins underwent arthroscopic surgery his right knee Oct. 1, and is expected to be ready for the regular season, which begins for the Twins on March 31 against the Chicago White Sox.
We've Got Apps Too
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.