Pastor Maldonado scored his maiden Formula 1 win and ended a Williams victory drought dating back to the end of the 2004 season as the Venezuelan defeated local hero Fernando Alonso's Ferrari in an absorbing Spanish Grand Prix at Barcelona's Catalunya track.
The Williams and Ferrari were absolutely together going into the final laps, but the superbly composed Maldonado was able to edge away and secure victory, leaving Alonso to fend off Kimi Raikkonen's flying Lotus for second.
Alonso had taken the lead at the start by beating Maldonado into the first corner, and then inched into a three-second lead during the first stint, as they pulled clear of the rest of the field.
But the combination of a stunning out-lap by Maldonado and Alonso getting stuck behind Charles Pic's Marussia on his in-lap saw the Williams leapfrog the Ferrari at the second pitstops, and then storm away for a few laps until 7s clear.
Alonso then started coming back at Maldonado, getting the gap down to 4.2s before the Williams had a slightly slow final pitstop with a left-rear issue. A few laps behind Raikkonen, who was running much further before his final pitstop, meant the leaders were absolutely nose to tail going into the closing laps as both tried to keep their tyres intact.
For a while it looked inevitable that Maldonado would succumb to Alonso's pressure, but it was the Ferrari that started to lose pace in the final stages, and the lead gap began to increase again - allowing Maldonado to take a very unexpected victory by 3.1 seconds.
Raikkonen's fresher tyres allowed him to gain on the leaders at a ferocious rate as the race neared its end, but he ran out of time to catch Alonso, finishing six tenths of a second adrift.
Romain Grosjean finished fourth in the other Lotus, with Kamui Kobayashi pulling off some characteristically bold passes on the way to fifth for Sauber.
Red Bull's Sebastian Vettel produced a late charge to take sixth after losing ground with a drive-through penalty for failing to heed yellow flags and requiring a new front wing at his final pitstop.
Nico Rosberg's Mercedes and both McLarens fell victim to Vettel's surge up the order, with Rosberg then fending off last-place starter Lewis Hamilton for seventh as the Briton managed to make a two-stop strategy work against expectations. His team-mate Jenson Button struggled for pace all day and finished ninth.
Force India's Nico Hulkenberg resisted huge pressure from Mark Webber, who lost ground on lap one and needed an out-of-sequence pitstop for a new front wing.
Behind the Toro Rossos and the second Force India of Paul di Resta, Felipe Massa had another bad race for Ferrari. Penalised for a yellow flag infringement, he finished only 15th.
Retirements included Michael Schumacher and Bruno Senna, who tangled at Turn 1 when the fresh-tyre-shod Mercedes ran into the back of the yet-to-pit Williams, and Sergio Perez. The Sauber picked up a puncture while trying to attack the Lotus pair at the first corner, and later parked just after a messy pitstop.
PROVISIONAL RACE RESULTS The Spanish Grand Prix Catalunya, Spain; 66 laps; 307.104km; Weather: Sunny. Classified: Pos Driver Team Time 1. Maldonado Williams-Renault 1h39:09.145 2. Alonso Ferrari + 3.195 3. Raikkonen Lotus-Renault + 3.884 4. Grosjean Lotus-Renault + 14.799 5. Kobayashi Sauber-Ferrari + 1:14.641 6. Vettel Red Bull-Renault + 1:17.576 7. Rosberg Mercedes + 1:27.919 8. Hamilton McLaren-Mercedes + 1:28.100 9. Button McLaren-Mercedes + 1:25.200 10. Hulkenberg Force India-Mercedes + 1 lap 11. Webber Red Bull-Renault + 1 lap 12. Vergne Toro Rosso-Ferrari + 1 lap 13. Ricciardo Toro Rosso-Ferrari + 1 lap 14. Di Resta Force India-Mercedes + 1 lap 15. Massa Ferrari + 1 lap 16. Kovalainen Caterham-Renault + 1 lap 17. Petrov Caterham-Renault + 1 lap 18. Glock Marussia-Cosworth + 2 laps 19. De la Rosa HRT-Cosworth + 3 laps Fastest lap: Grosjean, 1:26.250 Not classified/retirements: Driver Team On lap Perez Sauber-Ferrari 38 Pic Marussia-Cosworth 36 Karthikeyan HRT-Cosworth 23 Senna Williams-Renault 13 Schumacher Mercedes 13 World Championship standings, round 5: Drivers: Constructors: 1. Vettel 61 1. Red Bull-Renault 109 2. Alonso 61 2. McLaren-Mercedes 98 3. Hamilton 53 3. Lotus-Renault 84 4. Raikkonen 49 4. Ferrari 63 5. Webber 48 5. Mercedes 43 6. Button 45 6. Williams-Renault 43 7. Rosberg 41 7. Sauber-Ferrari 41 8. Grosjean 35 8. Force India-Mercedes 18 9. Maldonado 29 9. Toro Rosso-Ferrari 6 10. Perez 22 11. Kobayashi 19 12. Di Resta 15 13. Senna 14 14. Vergne 4 15. Hulkenberg 3 16. Schumacher 2 17. Massa 2 18. Ricciardo 2 All timing unofficial