McLaren's Kimi Raikkonen won a dramatic Canadian Grand Prix to breathe life back into the world championship.
CANADIAN GP RESULT
1 K Raikkonen (McLaren)
2 M Schumacher (Ferrari)
3 R Barrichello (Ferrari)
4 F Massa (Sauber)
5 M Webber (Williams)
6 R Schumacher (Toyota)
7 D Coulthard (Red Bull)
8 C Klien (Red Bull)
The Finn reduced Fernando Alonso's lead to 22 points - the Renault driver having retired with a broken suspension after hitting the wall while leading.
McLaren's Juan Pablo Montoya was disqualified for leaving the pit lane illegally while fighting for victory.
Raikkonen held off Michael Schumacher in the closing laps, with the other Ferrari of Rubens Barrichello third.
The Brazilian inherited the final podium position when Jarno Trulli's Toyota suffered brake failure with eight laps to go.
Sauber's Felipe Massa, Williams' Mark Webber, Toyota's Ralf Schumacher and the Red Bulls of David Coulthard and Christian Klien completed the points scoring positions.
Raikkonen's third win this year owed much to his ability to stay out of trouble as his main rivals all came unstuck in a race which had drama from start to finish.
Things looked good for Renault early on as Jenson Button and Michael Schumacher started slowly from the front row, allowing Giancarlo Fisichella and team-mate Alonso to get ahead.
Button and Schumacher's impressive qualifying displays were proved to be down to light fuel loads as both drivers came in for early stops.
It left McLaren pair Montoya and Raikkonen to pile on the pressure as Alonso was unable to get past Fisichella despite appearing to be faster.
Montoya almost took second from Alonso after making his first stop a lap later than his rival, but ran on to the grass leaving the pit lane to let the Spaniard off the hook.
The race then swung McLaren's way when Fisichella retired with hydraulic failure on lap 33, and Alonso ran into the wall and was forced to retire six laps later.
The Renault drivers enjoyed a great start, but both failed to finish
That left Montoya in the lead from Raikkonen, but the outcome was ultimately decided in Raikkonen's favour when Button crashed out while running third for BAR, prompting the appearance of the safety car and a string of pitstops.
McLaren boss Ron Dennis said he had already ordered his drivers to hold position for the rest of the race, but the order to pit was not given to Montoya until he had passed the pit lane entrance.
Raikkonen did pit, rejoining in the lead, and by the time of Montoya stopped at the end of the next lap, the safety car was coming down the start-finish straight.
The Colombian ignored a red light in the pit lane in his eagerness to get back out in a good position.
Montoya said: "I'm disappointed because I was so close to winning my first race for the team.
"Nobody is perfect and not being told to stop immediately after the safety car was deployed was made worse by me missing the red light which ultimately was the end of my race."
Montoya was promply black-flagged, leaving Raikkonen ahead of Schumacher at the front.
Schumacher was on the podium for the first time since April
Dennis said the team tried in vain to punish itself for Montoya's error with a drive-through penalty or placing him at the back of the field, but the stewards ignored the pleas.
"We made three mistakes," Dennis said.
"He made the mistake coming out after the first stop which would have given him second place in the race, we made the error on not calling him in and ultimately he made an error on going out.
Raikkonen, who was troubled by a steering problem, kept world champion Schumacher at bay despite some late spots of rain to finish 1.1 seconds ahead.
Trulli's late demise to promote Barrichello to third put two Ferrari drivers on the podium for the first time this season.
Canadian Grand Prix result:
1 Kimi Raikkonen (Fin) McLaren-Mercedes one hour 32 minutes 9.290 seconds
2 Michael Schumacher (Ger) Ferrari +1.137 secs
3 Rubens Barrichello (Brz) Ferrari +40.483
4 Felipe Massa (Brz) Sauber-Petronas +55.139
5 Mark Webber (Aus) Williams-BMW +55.779
6 Ralf Schumacher (Ger) Toyota 1 lap
7 David Coulthard (GB) Red Bull-Cosworth 1 lap
8 Christian Klien (Aut) Red Bull-Cosworth 1 lap
9 Jacques Villeneuve (Can) Sauber-Petronas 1 lap
10 Tiago Monteiro (Por) Jordan-Toyota 3 laps
11 Christijan Albers (Ned) Minardi-Cosworth 3 laps
R Jarno Trulli (Ita) Toyota 8 laps
DQ Juan Pablo Montoya (Col) McLaren-Mercedes 18 laps
R Jenson Button (GB) BAR-Honda 24 laps
R Nick Heidfeld (Ger) Williams 27 laps
R Takuma Sato (Jpn) BAR 30 laps
R Patrick Friesacher (Aut) Minardi 31 laps
R Fernando Alonso (Spa) Renault 32 laps
R Giancarlo Fisichella (Ita) Renault 38 laps
R Narain Karthikeyan (Ind) Jordan 46 laps Key: R = retired, NC = not classified; dq = disqualified)
Fastest lap: Raikkonen, one minute 14.384 seconds, lap 23.