The 22-year-old Horvat had 20 goals and 32 assists in 81 games last season for the Canucks.

"Bo has quickly become a foundational player on our team and we're thrilled for him to be a part of what we're building here long term," Canucks general manager Jim Benning said in a team release. "His commitment and work ethic have helped his game improve each season. He's already a leader on our team and a young player fans can be excited to watch for years to come."

Horvat has 49 goals and 68 assists in 231 career games in three seasons with Vancouver.