Fernando Alonso fended off an early challenge from Kimi Raikkonen to take the 14th win of his career, producing a dominant performance at the Circuit Gilles Villeneuve.
"It was a perfect weekend," said Alonso. "The race was difficult because off line there was a lot of rubber and you cannot go too wide and make a mistake."
In front of 100,000 spectators, Alonso led away with Raikkonen heading the chasers. McLaren was running a strategy that it hoped would allow Raikkonen to jump Alonso at the first round of pit stops but a sticking rear wheel nut delayed him and condemned him to second place.
Michael Schumacher, who qualified fifth, was helped by a late safety car when Jacques Villeneuve crashed his BMW-Sauber and the German caught up to Raikkonen who had been further delayed when he stalled in his second pit stop. With a lap to go, Schumacher made a daring move to secure second place. Raikkonen took third while Giancarlo Fisichella's fourth place came after a drive-through penalty for a jump start.