Kassian, 24, has a year left on his contract at a cap hit of $1.75 million.
Prust, 31, has a year left at a cap hit of $2.5 million.
Kassian has 35 goals and 31 assists in 198 games with the Canucks and Buffalo Sabres.
It's the second NHL trade for Kassian, who went from Buffalo to Vancouver for Cody Hodgson in 2012.
The Sabres bought out Hodgson after a disappointing season, and the forward signed with the Nashville Predators on Wednesday.
Prust had 15 goals and 30 assists in 172 games since signing with Montreal three summers ago.
The Canucks also re-signed defenseman Yannick Weber to a one-year deal. He will make $1.5 million next season.
The 26-year-old remains on the Canucks' blue line, which is expected to be younger after the club traded Kevin Bieksa to Anaheim. Weber has 63 points in 229 games with the Canucks and Canadiens.
Vancouver also signed goaltender Richard Bachman for two years and defenseman Taylor Fedun for one.