Hughes will make $9.2 million in 2015 and 2016 and earn base salaries of $13.2 million from 2017 to 2019, the source said.
The deal includes a limited no-trade clause and a chance to make $1 million in performance bonuses over the life of the contract. The extension overwrites the final two years and $16 million remaining on his current contract.
Hughes' new deal includes an annual salary increase of $1.2 million over the $8 million he had previously been owed in 2015 and '16. The overall value of $58 million over five years makes his new contract the largest for a pitcher in Twins franchise history.
Hughes will be 33 years old at the conclusion of the contract.
The New York Daily News had earlier reported Hughes' extension.
Near the end of the 2014 season, Hughes turned down a chance to pitch, even though one more out would have earned him a $500,000 bonus.
A half-million-dollar bonus would have kicked in if Hughes reached 210 innings this year, but he finished with 209 2/3 after a rain delay forced him out of his final scheduled start.
"I just didn't think it was right," Hughes said in September. "If I were fighting for a playoff spot, I'd 100 percent be available. But given the circumstances, I don't think it's the right thing to do."
Hughes was 16-10 with a 3.52 ERA in his first season with Minnesota. He had 186 strikeouts and only 16 walks. His strikeout-to-walk ratio of 11.63 set a major league record, breaking the mark of 11.00 set by Bret Saberhagen of the Mets in 1994.
The Associated Press contributed to this report.