The Mercedes driver controlled the race from start to finish, leading home team-mate Valtteri Bottas.
Vettel, meanwhile, could finish only fourth in the Ferrari.
The German dropped to the back when he needed to change his front wing, damaged by Red Bull’s Max Verstappen at the start.
He recovered well with some aggressive overtaking on a two-stop strategy and caught the battle for third place, in which Red Bull’s Daniel Ricciardo was leading the Force Indias of Sergio Perez and Esteban Ocon, with seven laps to go.
Vettel passed Ocon in a touch-and-go move into Turn One with four laps to go. An off-track moment a few corners later dropped him back from Perez but he made a daring late pass into the last corner with two laps remaining.
It was a sixth win in 10 races in Canada for Hamilton, who on Saturday equalled his hero Ayrton Senna’s mark of 65 pole positions. [/restrict]