Hamilton has realised his greatest ambition by winning Monaco
McLaren's Lewis Hamilton survived a collision with the barriers to win an incident-packed Monaco Grand Prix and take the world championship lead.
The Englishman's early error punctured a rear tyre but worked in his favour in a race defined by changeable weather.
His team refuelled his car at the tyre change, enabling him to delay his final pit stop and build a decisive lead.
BMW's Robert Kubica beat Felipe Massa's Ferrari to second. Force India's Adrian Sutil lost fourth in a late collision.
The German's superb performance in an unfancied car on a difficult afternoon came to a heartbreaking end on lap 68.
Raikkonen, close behind Sutil after a late safety car period, lost control while braking for the chicane and slalomed into the back of Sutil.
The pace I had was ridiculous. I had one second on some people and it was quite easy
The Force India was forced to retire, while Raikkonen, who had an otherwise low-key race, was able to rejoin to finish ninth after fitting as new nose cone.
Mark Webber was fourth for Red Bull, regaining thanks to the Raikkonen-Sutil incident a place he lost when he chose to put on dry-weather tyres at his final pit stop on lap 48.
Toro Rosso's Sebastian Vettel was fifth, ahead of Honda veteran Rubens Barrichello.
Kazuki Nakajima was seventh for Williams, with Hamilton's team-mate Heikki Kovalainen eighth after starting from the pit lane.
Webber's team had no choice but to fit dry tyres at his stop and the Australian had to come in at that time to refuel, but it was a couple of laps too early for the dry tyres.
Hamilton's final stop was six laps later, by which time the track had dried sufficiently for the McLaren driver to be at no risk by putting on dry tyres.
It was a remarkable turnaround for the 23-year-old, whose chances of a victory at his favourite track appeared over when he slid wide at the Tabac corner as the rain began to come down heavier on lap six.
Hamilton drove superbly in treacherous conditions after an early lucky break
The race started on a wet track, with drizzle coming down, and all the drivers chose the less extreme of the two wet-tyre options.
Despite the slippery track, Hamilton was the first driver caught out, although his former team-mate Fernando Alonso lost control of his Renault at the Massenet corner early in lap eight.
Hamilton said: "As the rain came down, there was a lot of spray and coming into Turn 12 it was like a river.
"I hit the river and just slid into the barrier. I knew I only touched it but I had a rear puncture. Thankfully the team acted quickly and I was able to resolve it.
"When the weather is like this the important thing is to keep on the track but I can't explain how difficult that is, you are almost just tip-toeing along.
"We changed the strategy and it played into my hands."
We changed to one stop and that was a big mistake
Alonso was also able to rejoin the race after pitting to change his punctured tyre - but Red Bull's David Coulthard and Sebastian Bourdais of Toro Rosso were less fortunate when they crashed at the same spot as Alonso seconds later.
Coulthard went in nose first, badly damaging the front of his car, which was then smashed into from behind by Bourdais.
That incident brought out the safety car, and Hamilton found himself in fourth place after rejoining from his stop.
He was behind Massa, who had held the lead from the start after successfully converting pole position, Kubica and Raikkonen.
The Finn was removed from contention when he was forced to take a drive-through penalty for not having his tyres fitted in time before the start of the race.
Massa and Kubica swapped places when the Brazilian was caught out by the slippery track at Sainte Devote on lap 16, but the Ferrari re-took the lead when the Pole made his first stop for fuel and tyres on lap 26.
The safety car came out twice following crashes in the difficult conditions
Massa came in six laps later, and that was when Hamilton started to build his lead.
He set a succession of fastest laps as he extended his lead by more than a second a lap, and his lead was more than 30 seconds - comfortably enough to rejoin in the lead.
"The pace I had was ridiculous. I had one second on some people and it was quite easy," Hamilton said.
"There was a point when I was 40 seconds ahead when the safety car came out."
Massa blamed Ferrari's decision to fuel him to the end of the race at his first pit stop for his defeat.
"I was so quick in the first stint," he said.
"I put down a good pace and I knew the strategy was working but then suddenly we changed to one stop and that was a big mistake because the track was getting drier and we expected some more rain but it didn't come and by the time Kubica had stopped.
""I wanted to stop again and we took too long too change the tyres. It was a shame we made a mistake on the strategy.
"But it's good to be on the podium and we know the championship is long. We have a great car. Unfortunately the strategy did not work."
Hamilton now had the race in his hands, but behind him the drama was not over.
The safety car came out for the second time when Nico Rosberg crashed heavily at the Swimming Pool - and the accident between Sutil and Raikkonen happened at the re-start.
The result gives Hamilton a three-point lead over Raikkonen in the world championship standings, while Massa is a further point behind.
Result of Monaco Grand Prix after 76 laps*:
1 Lewis Hamilton (GB) McLaren-Mercedes two hours 0 minutes 42.742 seconds
2 Robert Kubica (Pol) BMW Sauber 3.064 secs behind
3 Felipe Massa (Brz) Ferrari +4.811secs
4 Mark Webber (Aus) Red Bull-Renault +19.295
5 Sebastian Vettel (Ger) Toro Rosso-Ferrari +24.657
6 Rubens Barrichello (Brz) Honda +28.408
7 Kazuki Nakajima (Jpn) Williams-Toyota +30.180
8 Heikki Kovalainen (Fin) McLaren-Mercedes +33.191
9 Kimi Raikkonen (Fin) Ferrari +33.792
10 Fernando Alonso (Spa) Renault one lap behind
11 Jenson Button (GB) Honda one lap
12 Timo Glock (Ger) Toyota one lap
13 Jarno Trulli (Ita) Toyota one lap
14 Nick Heidfeld (Ger) BMW Sauber four laps
R Adrian Sutil (Ger) Force India-Ferrari 67 laps completed
16 Nico Rosberg (Ger) Williams-Toyota 59 laps
17 Nelson Piquet Jr (Brz) Renault 47 laps
18 Giancarlo Fisichella (Ita) Force India-Ferrari 36 laps
19 David Coulthard (GB) Red Bull-Renault seven laps
20 Sebastien Bourdais (Fra) Toro Rosso-Ferrari seven laps
Fastest Lap: Kimi Raikkonen, 1:16.689, lap 74.
* Race shortened by two laps because of two-hour time limit
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.