Kimi Raikkonen produced a stunning drive to win the Spanish Grand Prix and deny championship leader Fernando Alonso a fourth straight victory.
SPANISH GRAND PRIX
1 K Raikkonen (McLaren)
2 F Alonso (Renault)
3 J Trulli (Toyota)
4 R Schumacher (Toyota)
5 G Fisichella (Renault)
6 M Webber (Williams)
7 J P Montoya (McLaren)
8 D Coulthard (Red Bull)
Raikkonen's McLaren streaked away from pole position to finish 27.6 seconds clear of Alonso's Renault.
Jarno Trulli was third after a puncture stopped Michael Schumacher's Ferrari.
Trulli's Toyota team-mate Ralf Schumacher came in fourth ahead of Giancarlo Fisichella, Mark Webber, Juan Pablo Montoya and David Coulthard.
Raikkonen set the tone for the day with a storming qualifying display in the morning to grab pole position.
And, after an early appearance by the safety car when the two Minardis stalled at the back of the grid, the Finn set a string of fastest laps to ease clear of Alonso.
There was no repeat of Raikkonen's problems in the last race at Imola, when he led from pole but had to retire with a driveshaft problem.
He was so far ahead by his first stop that he came back out in the lead, and Alonso lost second place to team-mate Fisichella after the stops.
Michael Schumacher had qualified down in eighth as he chased a fifth straight win at the Barcelona circuit.
The seven-times world champion showed stunning pace at the end of his first stint to move up to fourth, and looked set for a podium place when Fisichella had to pit for repairs to his front wing.
But he was forced to pit himself with tyre problems on lap 44, and he had only just come back out when his left front tyre punctured.
Schumacher limped back round to the pits, but a broken front suspension signalled the end of his race.
It left Alonso clear to extend his championship lead, although he never looked like making it five wins out of five for Renault this season as Raikkonen dashed the home crowd's hopes.
It could have been even better for McLaren as Montoya looked poised to challenge for a spot on the podium.
But the Colombian, who was making his comeback after two races out with a fractured shoulder, was forced to make two stops in the space of two laps after a fuel nozzle malfunctioned.
Montoya, who had also survived a spin earlier in the race, eventually had to settle for seventh.
Trulli's podium was his third of the season, leaving him second in the drivers' championship, 18 points adrift of Alonso. Raikkonen is third on 17 points.
Michael Schumacher's winless streak now stands at five races, equalling his worst since he joined Ferrari in 1996, and he trails Alonso by 34 points.
1 Kimi Raikkonen (McLaren) 1hr 27min 16.830secs
2 Fernando Alonso (Renault) at 27.652secs
3 Jarno Trulli (Toyota) 45.947
4 Ralf Schumacher (Toyota) 46.719
5 Giancarlo Fisichella (Renault) 57.936
6 Mark Webber (Williams) 1:08.542
7 Juan Pablo Montoya (McLaren) 1 lap
8 David Coulthard (Red Bull) 1 lap
9 Rubens Barrichello (Ferrari) 1 lap
10 Nick Heidfeld (Williams) 1 lap
11 Felipe Massa (Sauber) 3 laps
12 Tiago Monteiro (Jordan) 3 laps
13 Narain Karthikeyan (Jordan) 3 laps