Mika Hakkinen finally found some Montreal magic today, winning the Canadian Grand Prix after failing to finish six of seven previous starts at Circuit Gilles Villeneuve.

Michael Schumacher, who stopped Hakkinen's string of five straight poles, crashed after leading the first 29 laps and fell behind the defending Formula One champion by four points, 34-30, in their battle for the 1999 title.

Hakkinen picked up his third victory of the season, his second straight and 12th of his career. He averaged 111.946 mph in a race that took 1 hour 41 minutes 35.727 seconds.

"I've been having a real hard time in Canada and I even got some negative feelings coming to Canada," Hakkinen said. "There was always something going wrong here. Now I love Canada. It's a fantastic place.

"This year when I came here I decided to take a really serious concentration to do well. I do that every year, but this is the big one, a big jump for me. This was some magic."

Schumacher was embarrassed by his uncharacteristic error.

"I lost control of the car at the last [quick turn] because I went off the racing line and got on the dirt," he said. "This was clearly my mistake. It was a shame because the car was working perfectly."

Hakkinen said he had not conceded anything to the two-time Formula One champion, even before the crash.

"Before Michael slid off, I was comfortable with the car and capable of going quicker, but there was no reason for it," Hakkinen said. "Then I saw Michael going off. I don't know what happened. It turned out to be good for me. But that's racing."