Michael Schumacher became the first driver to win the same Grand Prix seven times with victory at the Canadian GP.
Ralf Schumacher was second for Williams but disqualified along with team-mate Juan Pablo Montoya and both Toyotas for illegal brake ducts.
It gave Ferrari's Rubens Barrichello second and BAR's Jenson Button third.
Giancarlo Fisichella was fourth for Sauber and Kimi Raikkonen fifth ahead of McLaren team-mate David Coulthard, Jordan's Timo Glock and Nick Heidfeld.
It was Michael Schumacher's seventh win in eight races this season.
The victory was a tactical triumph for the German, who started a season-low sixth on the grid.
Both Ferraris were on a two-stop strategy, while Williams and BAR opted for three stops.
"We thought on Saturday that we had no chance for pole so we worked our strategy for the race," said Michael Schumacher.
He was content to bide his time at the start as younger brother Ralf and Button set the pace at the head of the field.
Jarno Trulli had been expected to challenge but his race was over within a few hundred metres after his suspension gave way.
After the first flurry of pit-stops by the three-stop drivers the Ferrari pair briefly led the way, but once they made their first trip to the pits it was Ralf who held the advantage.
Despite their different strategies all the front-runners made their final stops within a few laps of each other and Michael Schumacher took the lead for good on lap 48.
He had a healthy lead of nearly 10 seconds from his brother and although he slowed to conserve his brakes in the latter stages he won more comfortably than the one-second margin of victory suggested.
Barrichello set the lap record late on and looked as though he might challenge for victory when tucked in behind his team-mate before the second pit stops.
He seemed to be going quicker than Michael Schumacher but could not get past the German, and when Barrichello came out of the pits a trip across the grass ruined any chance he had of victory.
"The only chance I had to beat Michael was overtaking him on the racetrack or going further on fuel," said Barrichello.
Button drove a solid race from second on the grid but never quite had the pace to threaten a victory.