Sebastian Vettel increased his championship lead to 36 points after taking his, and Red Bull’s first victory in Canada.
Fernando Alonso overtook Lewis Hamilton in the closing stages of the race to take second, whilst Hamilton had to settle for third.
Mark Webber nursed a broken front wing home to fourth place and a fastest lap whilst Nico Rosberg drove a pretty uneventful race to fifth place.
Jean-Eric Vergne scored his best ever result with sixth place whilst Paul di Resta drove a 56-lap stint on one set of tyres and translated his P17 grid slot to an impressive seventh-place finish.
Felipe Massa finished eighth after starting sixteenth, and Kimi Räikkönen equalled Michael Schumacher’s record of 24 consecutive points finishes by finishing ninth. However, the Finn did lose second place in the championship to Alonso.
Adrian Sutil took the final point for Force India, despite a drive-through penalty late in the race for ignoring blue flags.
McLaren had a shocking race, with both cars finishing outside the points. Sergio Perez had to make do with eleventh, and Jenson Button was twelfth.
In contrast to much of the weekend, the sun was shining over the Circuit Gilles-Villeneuve for the entirety of the race. Vettel got an excellent start to get away in the lead.
Nico Rosberg and Mark Webber, who started fourth and fifth, immediately got past third-place man Valtteri Bottas, and the Finn quickly came under pressure from Fernando Alonso. By the end of the first lap, the Spaniard had passed the Williams and Bottas was down to sixth place.
Bottas was past by Jean-Eric Vergne on Lap 7 and, in the same move, Adrian Sutil also tried a move on the Finn. Sutil was sent into a spin in the process, but after pirouetting 360 degrees in the middle of the track, and the cars behind having to take evasive action, the German was able to resume. However, he fell from eighth to thirteenth.
Felipe Massa was the star of the early part of the race, moving from P16 to P9 before the front-runners came in for their first pit stops. Mark Webber was the first of those front-runners to pit, coming in from fourth place at the end of Lap 13.
Rosberg, who was running third, came in on the next lap to avoid the undercut. He re-emerged from the pit lane ahead of the Australian… just.
Race leader Sebastian Vettel pitted at the end of Lap 16 with a lead of over seven seconds. Fernando Alonso came in on the same lap, and Hamilton took temporary lead of the grand prix.
Lewis Hamilton made his first pit stop at the end of Lap 19, returning the lead of the race to Vettel. The 2008 champion re-joined the track comfortably ahead of teammate Rosberg.
Rosberg dropped from third to fifth within a couple of DRS zones at the end of Lap 30, when Mark Webber passed him, and then Fernando Alonso.
Having been stuck behind the German for a number of laps, Webber was now over ten seconds behind second-placed Hamilton, and nearly half a minute behind leader Vettel. Nevertheless, unleashed from behind Rosberg, Webber then set the fastest lap of the race.
There was soon some unwanted drama for Webber though, as he came to lap Caterham driver Giedo van der Garde at the hairpin. Webber moved to pass the Dutchman on the inside when Van der Garde closed the door on the Red Bull driver and removed the left end plate of his front wing.
Van der Garde was given a ten-second stop-go penalty, although as he was running dead last and two laps down, this had little impact on his race.
Webber didn’t immediately lose third place to Alonso after that collision, but that loss of front downforce on the Red Bull aided the Spaniard in passing him a few laps later. Alonso now had the final podium place, and was looking to close the eight-second gap to Hamilton.
Romain Grosjean, who started from the back of the grid, made his first and only scheduled pit stop after 42 laps, demonstrating how long the Pirelli medium tyre could be made to last at this circuit. Paul di Resta went even further on his first stint, finally stopping on Lap 56.
At the end of Lap 46, Webber became the first of the front-runners to make his second scheduled stop of the afternoon. Red Bull elected not to change his front wing.
Fernando Alonso pitted from third on the following lap to avoid the undercut, and Lewis Hamilton came into the pits from second one lap after the Ferrari driver. To complete the sequence, leader Sebastian Vettel came into the pits one lap after that, but with the lead he had, the three-time world champion virtually had a pit stop in his pocket anyway.
All this pitting took place while Giedo van der Garde was again in the wars out on track. Nico Hulkenberg tagged the Caterham driver when lapping the Dutchman. Hulkenberg had to stop out on track with rear tyre damage, and Van der Garde broke his front wing in the collision and also had to pull over.
Vettel cut the first chicane on Lap 52 to keep things interesting, but was still comfortably leading from Hamilton. Meanwhile, Fernando Alonso was beginning to set a series of fastest laps, and was quickly catching Hamilton in second.
With nothing to gain in fifth place, Nico Rosberg made a cautionary third stop at the end of Lap 58, but teammate Hamilton was now coming under pressure from Alonso. The Spaniard was now within a second of the Mercedes, and in DRS territory.
The move came at the start of Lap 63, when Alonso used DRS down the start/finish straight. The pair touched slightly as the passed, but both got into the first corner cleanly. Alonso had second place, but Vettel was nearly 20 seconds further down the road.
Hamilton did not know when he was beaten though. At the end of that lap, the pair touched again, just before entering the final chicane. Still they continued, and now Alonso could get away from the Mercedes driver.
Nothing could trouble Vettel though, and he cruised to his first win at Montreal.