"Sami is an elite defenceman who complements our group very well," general manager and senior vice-president Dave Nonis said in a statement. "We are confident that he will continue to perform at the high level he has established for himself over the next four seasons."
Salo, 32, made US$1.5 million this season and would have been eligible for unrestricted free agency in the summer.
He has recorded career highs in goals (13) and points (34) in 63 games this season. Six of his 13 goals have been game-winners and he also possesses a team-best plus-19 rating.
In 470 career NHL games, the six-foot-three, 215-pound Finn has collected 192 points (58-134) and 146 penalty minutes.
Originally selected in the ninth round, 239th overall in the 1996 draft by the Ottawa Senators, Salo was acquired by the Canucks for Peter Schaefer on Sep. 21, 2002.