The deal holds an average annual value of $5.875 million.
"We're very pleased to have Brock re-sign," Vancouver general manager Jim Benning said. "He's a talented player, a key contributor to our offense and an important part of our team's future. We look forward to having Brock join the team in preparation for the upcoming season."
The 22-year-old missed training camp during the weekend as negotiations continued. He posted a photo of himself in a Canucks jersey on Instagram after the deal was announced, with the caption: "Excited to be back, can't wait to get going! See you soon #cominghome."
Boeser has been the model of consistency since he became a full-time player for the Canucks in 2017-18. He had 29 goals and 26 assists that season, despite being limited to 62 games after a scary-looking collision with the opening of the bench door. He also was named MVP of the All-Star Game in 2018. Last season, he had 26 goals and 30 assists in 69 games.
Boeser and rookie sensation Elias Pettersson form the core of the Canucks forward group as the team rebuilds following the Sedin era.
The 23rd pick in the 2015 draft, Boeser is coming off his entry-level deal that had a cap hit of $925,000.
Information from The Associated Press was used in this report.