Beagle was part of the Capitals' run to the Stanley Cup title, scoring seven goals with 15 assists in the regular season and chipping in another two goals and six assists in the playoffs.
"Jay is a detailed player with championship experience, who can handle a big defensive workload," Canucks general manager Jim Benning said in a statement. "He's grown and developed his game with a core group of players and won at every level of pro hockey. We're excited to add a player with his caliber of character."
Signed as an undrafted free agent in 2007, Beagle has spent his entire NHL career in Washington. He became an unrestricted free agent this summer after completing a three-year, $5.25 million extension that was signed in 2015.
He said during the playoff run that he couldn't imagine playing for a team other than the Capitals.
Regularly praised by teammates and coaches for his work ethic, Beagle has tallied 51 goals and 65 assists in 471 career games.
The Canucks also announced the signing of forward Tim Schaller to a two-year deal with an average annual value of $1.9 million.
"Tim adds size to our forward group and can play throughout our lineup," Benning said. "He's responsible defensively and last year showed he can make regular offensive contributions as well. We're excited to welcome him to the Vancouver Canucks."
The 27-year-old had 12 goals and 10 assists in 82 games for the Bruins last season.