The 22-year-old would have become a restricted free agent July 1.
Kesler had six goals and 10 assists in 48 games last season but missed the final 34 games of the regular season after undergoing hip surgery in late January. He was a surprise starter when the Western Conference playoffs opened but broke his finger in the first game and did not return.
A first-round pick of the Canucks in the 2003 NHL draft, Kesler has 18 goals and 44 points in 158 career games. He earned $1.9 million last season after Philadelphia signed him to an offer sheet and the Canucks matched it. Financial terms of Kesler's new deal were not disclosed.