The Canadiens didn't disclose financial terms, but two sources told ESPN.com the deal is worth $33 million in total, an average of $5.5 million per year. It also includes a no-trade clause.
Petry would have been free to sign with any team on July 1 and probably would have scored a bit more money on the open market, but he decided to stay put with the team that traded for him at the trade deadline on March 2.
"Once I started negotiating with the Canadiens, my wife and I made a decision we really strongly wanted to come back," Petry said Tuesday. "Everything from the day I got there to the playoff run, the environment at the Bell Centre, the players in the locker room, the organization just being first class -- that all played into it and played a big part in ultimately signing the deal."
Petry played the best hockey of his career after joining the Habs from Edmonton, playing a steady, mistake-free brand of hockey from the back end.
Petry, the son of former Detroit Tigers pitcher Dan Petry, was acquired in March by the Canadiens after four-plus seasons with the Edmonton Oilers, where he averaged over 20 minutes of ice time and scored 17 goals and 57 assists.
The blueliner continued to contribute for Montreal this postseason, notching two goals and an assist while averaging just over 22 minutes in 12 games.
In April, Habs coach Michel Therrien said of the 27-year-old: "He's playing the best hockey of his career. It's as simple as that. He's really solid defensively, skates well, distributes the puck well, he's able to jump up in the play offensively.
"He took about three weeks to adjust after he got here; teams do things differently which is normal, so there's a period of adjustment for the player so that the team's system becomes second nature to him. Since then, and I had a good chat with him before the playoffs, he feels really comfortable with the way we play and he's able to raise his level of play within that."
Information from The Associated Press was used in this report.