With title leader Kimi Raikkonen starting from the pitlane after a nightmare in qualifying, the five times world champion seized the moment to record his sixth win at the Gilles Villeneuve circuit.
Schumacher's younger brother Ralf, in a Williams, finished second, while Colombia's Juan Pablo Montoya, also driving a Williams, finished third.
Spain's Fernando Alonso was fourth, after leading briefly in his Renault, and Brazilian Rubens Barrichello was fifth.
Raikkonen battled back to sixth place, salvaging precious points but not enough to prevent the Ferrari driver from leapfrogging him at the halfway stage of the season with 54 points to the Finn's 51. Ferrari have 85 to McLaren's 76.
It was the 68th win of Schumacher's career, fourth of the season and took his career points tally to 999 as he heads for his home grand prix at the Nuerburgring in two weeks' time.
But it was no runaway victory with the first four cars separated by a mere 4.481 seconds at the finish and Schumacher struggling with brake problems.
Ferrari bosses heaped praise on him, with technical director Ross Brawn saying it was "one of the best races I have ever seen."
"It was an incredible race," said sporting director Jean Todt. "Michael delivered a perfect performance despite suffering with brake problems for much of the race."
MIRROR IMAGE
Schumacher ran behind the Williams of younger brother Ralf from the second lap until taking the lead in initial pitstops. He then had the Williams in his mirrors for the rest of the afternoon.
Ralf was never close enough to find a way past and had to make do with second, 0.7 behind, in a reversal of the 2001 Canadian Grand Prix where he beat the Ferrari to the chequered flag.
"I'm a bit disappointed. We had the race pace," said Ralf, whose rear view mirror broke and banged against his helmet in some corners.
"I can't see where he took the gap. Maybe he was in a different race. In 2001 I won it like this, now it's his turn."
Colombian Montoya, winner of the last race in Monaco two weeks ago, finished third after a costly spin on the second lap while in second place behind Ralf and had similar mirror problems as well.
"I just braked too late and got it sideways," said Montoya. "It was my fault completely."
Raikkonen's sixth place was remarkable in the circumstances, with the Finn losing a tyre just before he pitted.
Australian Mark Webber won two points for Jaguar with seventh place and France's Olivier Panis was eighth for Toyota in a race with just nine cars running at the end.
VILLENEUVE OUT
Local hero Jacques Villeneuve retired from his home grand prix for the third year in a row.
The Canadian former world champion, racing on the 25th anniversary of his late father Gilles's win for Ferrari at the circuit that now bears his name, retired in the pits on the 16th of 70 scheduled laps.
"Just before I came into the pits there were no rear brakes, I was doing all the braking on the front brakes," said Villeneuve. "It was just pure bad luck."