The contract is worth $2.5 million in the 2010-11 season and $3 million in 2011-12, ESPN.com's Pierre LeBrun reported.
The 22-year-old goaltender signed the new contract on Thursday, ending two months of negotiations with the Canadiens.
Price has spent his entire career in Montreal after being selected fifth overall in the 2005 NHL draft. He'll start the upcoming season as the team's No. 1 goalie. He split the duties last season with Jaroslav Halak, who has since been dealt to the St. Louis Blues.
Price was 13-20-5 in 41 games. Halak took over the starting job late in the season and helped the Canadiens reach the Eastern Conference finals.
Information from The Associated Press was used in this report.