Having equalled the number of poles as Ayrton Senna in qualifying on Saturday, the Briton had his focus set on the win and remained unchallenged throughout the 70-lap race.
The Ferrari star was unable to put the pressure on Hamilton but did just pip Mercedes' Valtteri Bottas to third. The British driver led the race throughout without any issues and managed to build a significant gap ahead of the pack of drivers behind him.
Hamilton warned, however, that there was still much to do and it would take time.
Meanwhile, things didn't go well for the Ferrari camp.
Vettel was not particularly slow out of the blocks, but as Bottas dived underneath the German, and Verstappen raced around the outside, the driver who had finished either first or second at every round of the season so far, was suddenly on the back foot. He came out in 18th position.
Sainz was given a three-spot grid penalty for the next race, in Azerbaijan, for his role in the crash that knocked him and Massa from the race and left Romain Grosjean with front wing damage.
The safety vehicle was deployed to deal with Sainz's stricken Toro Rosso, with Hamilton leading from Verstappen and Bottas. Grosjean suffered damage to his car's nose and thus limped back into the pits for a replacement.
Ferrari reported that Raikkonen had balance problems after going on to the grass during the first-lap mess. He came out of the pits in sixth position, but soon got promoted to fifth when Raikkonen made another pit stop.
Mexican Sergio Perez finished fifth after a bruising battle with his Force India team-mate Esteban Ocon of France, who was sixth.
Actor Patrick Stewart does a "shoey" on the podium with Daniel Ricciardo. Ocon had pitted 13 laps later than teammate Pérez, but Pérez ignored team orders to let Ocon through, so the Frenchman was never given a chance to take the fight to Ricciardo's Red Bull.
"It has been a spectacular day and the team really needed it".
Canadian teenage rookie Lance Stroll answered some of his critics by scoring his first points in Formula One for Williams, crossing the line in ninth place to the cheers of a sell-out home crowd.
Max Verstappen surged from fifth to second, clipping Vettel's front wing on his way past before Felipe Massa was taken out by a spinning Carlos Sainz after the Toro Rosso driver had lost control following contact with Romain Grosjean's Haas vehicle in the approach to Turn 3.
Sebastian Vettel was left frustrated after seeing his flawless run of podiums through the 2017 Formula 1 season end in Canada on Sunday, finishing fourth after a hectic race.