Fernando Alonso held off a stunning fightback from Michael Schumacher at the San Marino Grand Prix to win his third Formula One race in a row.
1 F Alonso (Renault)
2 M Schumacher (Ferrari)
3 J Button (BAR)
4 A Wurz (McLaren)
5 T Sato (BAR)
6 J Villeneuve (Sauber)
7 J Trulli (Toyota)
8 N Heidfeld (Williams)
Schumacher's Ferrari climbed up from 14th on the grid to push hard for the lead in the closing laps, but the Renault driver just held him off.
Jenson Button, who challenged Alonso early in the race, was third for BAR.
McLaren stand-in Alexander Wurz was fourth with Takuma Sato's BAR fifth and Jacques Villeneuve sixth in a Sauber.
The Toyotas of Jarno Trulli and Ralf Schumacher rounded out the top eight points-scoring positions.
But Ralf was subsequently penalised 25 seconds for a pitstop incident, which will promote Williams' Nick Heidfeld to eighth if a Toyota appeal fails.
Alonso took over at the front when Kimi Raikkonen, whose McLaren started on pole, retired after eight laps.
The Spaniard came under a degree of pressure from Button before the first pit stops, but held the lead at around 10 seconds thereafter.
But by that stage both men were more worried about Schumacher's progress than each other.
The world champion, who had qualified so low because he ran off the track on his final qualifying lap, jumped from 12th to third during the first pit stops.
Ferrari had filled his car with more fuel than any of the other front-runners and he lapped at record speed for several laps longer to leapfrog brilliantly into a podium position.
He continued his stunning performance throughout the middle stint of the race to close right up to Button's tail before the final pit stops.
Raikkonen streaked into an early lead but soon retired
Schumacher took advantage of traffic to pass Button into the Variante Alta chicane on lap 47 as they were lapping the two Williams drivers.
But the Englishman had held him off for four laps before that and that was just long enough to enable Alonso to retain the lead through the second stops.
The two went into the final 12 laps with Alonso just 1.3 seconds ahead but, despite spending the rest of the race right behind the Renault, Schumacher could not pass.
He made one final attempt at Tosa on the last lap but it did not come off and Alonso held on to win.
Schumacher's pace, though, signalled that the German will be a potential winner from now on.
And that could turn the 2005 season into a classic as he tries to close down a 26-point deficit to Alonso in search of his eighth championship.
San Marino race result
1 Fernando Alonso (Renault) 1hr 27min 41.921secs
2 Michael Schumacher (Ferrari) 0.215secs
3 Jenson Button (BAR) 10.481
4 Alexander Wurz (McLaren) 27.554
5 Takuma Sato (BAR) 34.783
6 Jacques Villeneuve (Sauber) 1:04.442
7 Jarno Trulli (Toyota) 1:10.258
8 Nick Heidfeld (Williams) 1:11.282
9 Mark Webber (Williams) 1:23.297
10 Vitantonio Liuzzi (Red Bull) 1:23.764
11 Ralf Schumacher* (Toyota) 1:35.841
12 Felipe Massa (Sauber) 1 lap
13 David Coulthard (Red Bull) 1 lap
14 Narain Karthikeyan (Jordan) 1 lap
15 Tiago Monteiro (Jordan) 2 laps
* = Ralf Schumacher penalised 25 seconds for dangerous manoeuvre. Toyota have appealed.