Financial terms of the deal were not announced, but TSN of Canada reported that sources said the deal will average $6.5 million a season.
The third-year defenseman is in the final season of his entry-level contract and is earning slightly more than $940,000.
Phaneuf has 35 points in 53 games this season and scored a goal in the NHL All-Star Game last month.
The 22-year-old is one of several Flames who have signed long-term deals.
Information from The Associated Press was used in this report.