Mark Webber kept a five-car train at bay in tricky conditions to secure the second Monaco Grand Prix victory of his career and become the sixth winner in as many races in the 2012 Formula 1 season.
That statistic is unprecedented in F1 history, but Webber's win did make Red Bull the first team to notch up a repeat win this year.
Mercedes driver Nico Rosberg was second, while Fernando Alonso completed the podium for Ferrari and now leads the world championship. Sebastian Vettel in the second Red Bull, Lewis Hamilton's McLaren and Alonso's team-mate Felipe Massa rounded out a very close top six.
Pole position starter Webber held off Rosberg's Mercedes away from the grid, then remained ahead through the sole pitstop sequence, despite Rosberg going for fresh tyres earlier.
Vettel brought himself into contention by getting up to sixth at the start, then stayed out until lap 45 before switching from softs to the super softs that everyone else had started the race on. Lapping 1.5s faster than anyone else for a spell while leading, Vettel was able to emerge from his stop in fourth ahead of Hamilton, who had lost out to Alonso in the pits.
Rain had threatened all afternoon, and became slightly heavier going into the final eight laps, just as the leaders' tyres began to fade. That brought the top six even closer together, with Rosberg, Alonso, Vettel, Hamilton and Massa - in his strongest drive of the year so far - suddenly right on Webber's tail. But as the drizzle eased again, the pace increased and Webber was able to wrap up his first win of 2012.
A start crash eliminated another podium contender. Lotus's Romain Grosjean made a slow start then tangled with Michael Schumacher's Mercedes, breaking the Lotus's suspension and sending it spinning across the pack at Sainte Devote. Amazingly none of the frontrunners hit it, but it did clip Kamui Kobayashi's Sauber, which became airborne and later retired with suspension damage. Further back, Barcelona winner Pastor Maldonado (Williams) ran into Pedro de la Rosa's HRT.
Schumacher was able to continue and ran seventh until fuel pressure problems forced him to retire.
Jean-Eric Vergne (Toro Rosso) then picked up that position - a very early pitstop on lap 18 having given him chance to run in clean air and vault up the order. But a decision to pit for intermediates in the late shower proved misguided and dropped him out of the points.
Force India scored with both cars as Paul di Resta and Nico Hulkenberg finished seventh and eighth, followed by Kimi Raikkonen in the remaining Lotus. The Finn lost time when his tyres dramatically faded in the first stint and he then spent a while trapped behind Charles Pic's Marussia following his stop. Bruno Senna completed the scorers for Williams.
Jenson Button failed to make any progress in the second McLaren. After taking to the escape road to avoid the first-corner crash, he spent most of the afternoon trying to pass Heikki Kovalainen's Caterham, eventually spinning at the second part of the Swimming Pool in his efforts, and retiring soon after.
Kovalainen had been on course for 11th, but had to pit with front wing damage amid a fraught battle with Sauber's Sergio Perez, so fell to 13th behind Vergne.
PROVISIONAL RACE RESULTS
The Monaco Grand Prix
Monte Carlo, Monaco;
78 laps; 260.520km;
Pos Driver Team Time
1. Webber Red Bull-Renault 1h46:06.557
2. Rosberg Mercedes + 0.643
3. Alonso Ferrari + 0.947
4. Vettel Red Bull-Renault + 1.343
5. Hamilton McLaren-Mercedes + 4.101
6. Massa Ferrari + 6.195
7. Di Resta Force India-Mercedes + 41.500
8. Hulkenberg Force India-Mercedes + 42.500
9. Raikkonen Lotus-Renault + 44.000
10. Senna Williams-Renault + 44.500
11. Perez Sauber-Ferrari + 1 lap
12. Vergne Toro Rosso-Ferrari + 1 lap
13. Kovalainen Caterham-Renault + 1 lap
14. Glock Marussia-Cosworth + 1 lap
15. Karthikeyan HRT-Cosworth + 2 laps
Fastest lap: Perez, 1:17.298
Driver Team On lap
Button McLaren-Mercedes 71
Ricciardo Toro Rosso-Ferrari 66
Pic Marussia-Cosworth 65
Schumacher Mercedes 64
Petrov Caterham-Renault 16
Kobayashi Sauber-Ferrari 6
De la Rosa HRT-Cosworth 1
Maldonado Williams-Renault 1
Grosjean Lotus-Renault 1
World Championship standings, round 6:
1. Alonso 76 1. Red Bull-Renault 146
2. Vettel 73 2. McLaren-Mercedes 108
3. Webber 73 3. Ferrari 86
4. Hamilton 63 4. Lotus-Renault 86
5. Rosberg 59 5. Mercedes 61
6. Raikkonen 51 6. Williams-Renault 44
7. Button 45 7. Sauber-Ferrari 41
8. Grosjean 35 8. Force India-Mercedes 28
9. Maldonado 29 9. Toro Rosso-Ferrari 6
10. Perez 22
11. Di Resta 21
12. Kobayashi 19
13. Senna 15
14. Massa 10
15. Hulkenberg 7
16. Vergne 4
17. Schumacher 2
18. Ricciardo 2
All timing unofficial