Kimi Räikkönen devait le plus rapidement possible se remettre en selle après avoir été désarçonné sur le circuit du Nürburgring à moins d’un tour du drapeau à damier, après avoir dominé la totalité du Grand-Prix d’Europe. Mission accomplie pour le Finlandais, qui a bénéficié d’erreurs grossières et d’une casse mécanique des trois pilotes qui le devançaient. Giancarlo Fisichella éliminé sur problème hydraulique, Montoya écarté de la course sur drapeau noir et Alonso hors course pour avoir heurté un muret, pouvaient tous espérer s’imposer sur le circuit Gilles Villeneuve, mais la victoire est revenu au package pilote/monoplace le plus fiable et le plus sûr.
Tout se présentait pourtant bien pour les Renault, qui rentre bredouilles du Canada. A l’extinction des feux, Jenson Button et Michael Schumacher ont du mal à s’arracher de la grille et la deuxième ligne en profite pleinement, Fisichella étant plus prompt et précis qu’Alonso pour s’emparer de la tête devant son coéquipier. Derrière les deux monoplaces au losange, Jenson Button devance Montoya et Räikkönen, qui ont tous deux débordé Michael Schumacher. Barrichello quant à lui s’élance des stands après avoir fait le plein de carburant et entame déjà une puissante remontée, alors que Villeneuve passe par les stands pour changer un museau endommagé dans une bousculade dont il est la seule victime.
Michael Schumacher est le premier à observer un ravitaillement, au 12è tour seulement ! Il est imité par Button trois boucles plus tard. Les deux hommes confirment ainsi l’ineptie des qualifications, qui ne consistent plus en un duel homme/chronomètre, mais en une partie de poker et de stratégie de course. En s’engouffrant dans les stands, Button libère les deux McLaren, auxquelles il a fait perdre la bagatelle de huit secondes. Montoya et Räikkönen alignent alors une série de tours ultrarapides pour combler l’écart de 10 secondes qui les sépare des deux R25. Le Colombien est le premier à rouler dans les 1:14, bientôt imité par Kimi. Au 23è tour, Juan Pablo est revenu à 5.7 secondes du leader alors que Kimi rentre aux stands en même temps qu’Alonso. Une boucle plus tard c’est au tour de Montoya et Fisichella de passer à la pompe. Juan Pablo est en position de devancer Alonso, mais le Colombien part à la faute et fait une petite excursion dans l’herbe qui le force à laisser passer la R25 du leader du championnat.
La mi-course approche, ainsi que la malchance proverbiale de Fisichella. Trahi par le système hydraulique de sa monoplace, le Romain laisse passer Alonso puis les McLaren avant de rentrer aux stands, définitivement. L’Italien est furieux.
Alonso relève le gant l’espace de 7 tours, avant de craquer sous la pression que lui impose Montoya. La monoplace de l’Espagnol effectue une embardée du train arrière mais ne peut éviter le muret. Suspension arrière droite endommagée, Fernando voit ses espoirs de victoire ou de podium s’envoler. Le diagnostic est confirmé lors de son retour aux stands au ralenti : c’est l’abandon.
On se dirige vers un facile doublé McLaren, mais un nouveau coup de théâtre intervient au 47è tour, lorsque Jenson Button est la victime involontaire du fameux muret « Bienvenue au Québec ». Une faute classique – le Britannique rebondit sur le vibreur extérieur, sa monoplace en perte d’adhérence et incapable de changer de trajectoire ne peut éviter le mur. Le safety car est envoyé en piste et la majorité des concurrents en profite pour observer un arrêt ravitaillement. Montoya – sur ordre de McLaren ? - commet l’erreur de rester en piste et d’effectuer une boucle de plus. Lorsqu’il ressort des stands il accumule les bévues en ne respectant pas un feu rouge allumé en sortie des stands, puis déborde Monteiro et Coulthard sous drapeaux jaunes, afin de se positionner dans le sillage de Räikkönen. La sanction tombe quelques minutes plus tard : drapeau noir ! Exclusion pure et simple pour non respect des feux rouges.
Lorsque le safety car libère la meute, Räikkönen doit creuser un nouvel écart sur Michael Schumacher, dont la période de neutralisation fut une bénédiction pour recoller au leader de la course. Le champion du monde en titre fait mine de revenir sur le Finlandais et l’on anticipe une fin de course façon Imola, avec le même chasseur et Räikkönen dans la peau du chassé, rôle qu’Alonso avait rempli au Grand-Prix de Saint Marin. Mais le Finlandais contrôle la situation et accélère sur demande pour conserver le pilote Ferrari à distance respectable. Derrière le duo de tête, qui force l’allure et tournent dans les 1:15 dans les dernières boucles, Barrichello a levé le pied et tourne dans les 1:17 afin d’assurer une miraculeuse 3è place que Trulli lui a apporté sur un plateau lorsque son disque de frein avant gauche explose à 15 tours du but. La bagarre fait rage derrière le Brésilien : Massa se défend bec et ongle contre les assauts parfois erratiques de Mark Webber. Malgré des pneus arrière usés, le Brésilien tient bon et fait preuve d’une maîtrise parfaite des évènements dans des conditions périlleuses.
Après 70 tours de course, Räikkönen franchit la ligne d’arrivée en vainqueur. Schumacher et Barrichello complètent le podium et symbolisent le retour de Ferrari au premier plan, même si bien aidé par les abandons et la sortie du safety car. Felipe Massa résiste jusqu’au bout à Webber malgré une dernière tentative de l’Australien dans la dernière chicane. Ralf Schumacher sauve l’honneur pour Toyota en s’emparant de la 6è place devant le duo Red Bull Racing, Coulthard devançant Klien. Malgré un superbe tour de qualification, Villeneuve termine à la porte des points, devant Monteiro et Albers.
Au classement du championnat Pilotes, Räikkönen totalise 37 points, contre 59 pour Alonso, dont l’avance reste très confortable.