"I'm happy to be at this point and I'm looking forward to reintegrating with the team and helping them win," Subban said on a conference call. "It was about getting a deal done that was fair to both sides."
Subban, who was a restricted free agent, will be paid a prorated $2 million this season and $3.75 million in 2013-14 for an annual salary cap hit of $2.875 million.
The 23-year-old will join the team on Wednesday in Ottawa, but it was unclear if he would play that night against the Senators. If not, he will likely begin his season Saturday afternoon at home against Buffalo.
Subban led the Canadiens in average ice time per game at 24:18 last season. He had seven goals and 29 assists in 81 games and was seventh among NHL defensemen with 205 shots on goal.
In his NHL career, he has 21 goals and 55 assists in 160 games.
Note: The signing came on the same day the Canadiens confirmed that rookies Alex Galchenyuk and Brendan Gallagher will stay with the NHL club. The 18-year-old Galchenyuk was drafted third overall in June and has a goal and two assists in four games, while the 20-year-old Gallagher has two points.