Vettel's third victory this season lifted him to 121 points ahead of Hamilton on 120 after seven races, ending the defending four-time champion's hopes of a record-equalling seventh win at the Circuit Gilles Villeneuve where he won from pole for the last three years.
The cooling problem is not the first problem the team have faced this year.
Kimi Raikkonen in the other Ferrari and Monaco victor Daniel Ricciardo are in the third row.
Nico Hulkenberg and Carlos Sainz of Renault, Esteban Ocon of Force India and Charles Leclerc of Sauber also finished in the points. "It's unbelievable. I said yesterday how much this place means to Ferrari and to have a race like we had today is unbelievable", said Vettel. "After a long stretch where Ferrari didn't win here, the fans were super happy, they had a blast and will have a blast tonight". "I am going to keep doing that until I die".
It was the Italian team's first Canadian GP win since Michael Schumacher in 2004, a race Vettel watched on television as a teenager at home in Germany. "The celebrity was not to blame", FIA race director Charlie Whiting said. It's Vettel's fourth pole on the Ile Notre-Dame, and his first since 2013.
The only other incident was a major first-lap collision between Williams' Lance Stroll and Toro Rosso's Brendon Hartley, with the pair coming together through Turn 6, the contact sending Hartley's STR13 riding the crash barriers.
New Zealander Hartley had been trying to pass Stroll on the opening lap when the latter had a brief wobble, causing the two to clash.
Vettel struggled for pace in both practice sessions and finished the day 0.787s off the fastest time set by Max Verstappen and 0.657s off Raikkonen.
When asked if he was anxious errors could start creeping in as a result of an intense fight, he said: "I think you need to get the right balance between pushing development very hard, adding performance to the auto and at the same time keeping reliability".
This left Vettel and Bottas out in front, 24 seconds ahead of Verstappen, but still running on their original ultra-softs.
It was left to Bottas to chase Vettel, who made a clean getaway from the start, with Verstappen nearly passing the Finn before the order settled down. After 42 laps, sadly, Fernando Alonso's 300th Grand Prix weekend came to an end when, chasing 10th, he was called in to pit and retire. "Sorry mate, gutted", said his McLaren engineer. Vettel's lone pit stop on the 38th of 70 laps saw him emerge with a six-second lead.