Hamilton cruised home 19.7 seconds ahead of team-mate Valtteri Bottas for their first one-two since the Finn joined in January as replacement for retired champion Nico Rosberg.
'I knew we could recover position because the auto is quick, but you have to fight your way through the field which is a lot of work, and it's not easy. "My fifth time racing here and third up on the podium, so it's been a good place for me".
"I know what I did, what issues I had, at the time that I encountered them, so I don't have to go back over that".
Seven races in, Hamilton now trails Vettel by 12 points with both men having three wins each this season. "It was bad that we didn't spot it - I had a little bit of a feel [that there was damage] out of Turn 6 and then the safety auto came, but I wasn't sure because it was the first lap of the race and it was very windy, so I thought it might have been a gust and the first lap the tyres are not there".
Vettel started on the front row but finished off the podium for the first time this year.
The pink Force India cars of Sergio Perez and Esteban Ocon were fifth and sixth after battling each other on the track - and over the radio - for position down the stretch.
Native Montrealer Lance Stroll was ninth - the first-ever points for the 18-year-old rookie; Hamilton gave him a thumbs-up as he passed on the track.
Was The Finsbury Park Mosque "Incident" Terrorism?
The man detained at the scene of an attack in Finsbury Park, north London , last night has been arrested for attempted murder. The van slammed into worshipers leaving the mosque after midnight Ramadan prayers, killing one person and injured 10 others.
If it was plain sailing for the Briton it was anything but for Vettel who suffered front wing damage on lap one which forced him into an early pit stop and meant the Ferrari driver was playing catch up for the remainder of the race.
"The wind was throwing the auto around quite a lot and that was tricky", said Ricciardo, who has finished third in three straight races.
"I don't think in the five years I've been with the team, they have pulled together so well and really work towards the same cause".
Sainz caused an opening lap crash with Massa, bringing out the safety auto, and will carry a three-place grid penalty over to the next race in Azerbaijan.
Bottas, whose second-place finish helped Mercedes leapfrog Ferrari in the constructors' standings, said: "Like Lewis said, I am also really happy for us as a team, impressive to see in only two weeks what we have been able to do and improve with everything in the team".
The team initially thought he escaped the incident unscathed, as the damage to the auto was not at first apparent to the driver or on the telemetry.
Hamilton made the most of the re-start and resisted another Verstappen attack before Vettel, his front wing clearly damaged, pitted for repairs.
Daniel Ricciardo in the final podium spot now had a train of both Force India's and the two Ferrari's running behind him.