BMW Sauber driver Robert Kubica finished second, and Felipe Massa, who started from pole position, was third in a Ferrari.
Massa maintained his lead into the first corner, but his teammate Kimi Räikkönen was passed for second by Hamilton, who had started in third position on the grid.
Kubica's strategy allowed him to pass Massa during their second pit stops, after the latter's Ferrari was forced to change from wet to dry tyres.
Räikkönen dropped back from fifth position to ninth after colliding with Adrian Sutil's Force India late in the race.
[3] The teams, also known as "constructors", were Ferrari, McLaren-Mercedes, Renault, Honda, Force India-Ferrari, BMW Sauber, Toyota, Red Bull-Renault, Williams-Toyota and Toro Rosso-Ferrari.
[6][7] A strong drive despite an unfavourable strategy had helped Hamilton to split the Ferrari drivers on the podium in Turkey, coming second, behind Massa but ahead of Räikkönen.
[14] As the STR3 used a different transmission than that used in the STR2, Toro Rosso driver Sebastian Vettel was forced to take a five-place penalty on the grid for an unscheduled change of gearbox.
[15] His teammate Sébastien Bourdais escaped a similar penalty because he had failed to finish the race in Turkey, allowing him a free gearbox change.
[17] Behind Williams driver Nico Rosberg, Kubica was the best of the BMW Saubers in sixth; his teammate Heidfeld was forced to retire because of an engine failure, and stopped his car in Casino Square after just 13 laps.
[18][19] Despite further delays during the second session – both Renault drivers crashed in separate incidents at Sainte Devote, requiring the marshals to sweep the track of debris – Hamilton again proved strong, fastest ahead of Rosberg, Räikkönen, Massa, Kovalainen and Kubica.
[20] While light rain fell on Saturday morning, Kovalainen set the fastest time in the final session, before losing control at Piscine and damaging the rear of his car.
[21] The rain increased as the marshals cleared the debris, and in the ensuing poor track conditions Kovalainen's time remained unbeaten.
Cars failing to make the final period were allowed to be refuelled before the race but those competing in it were not, and so carried more fuel than they had done in the earlier qualifying sessions.
[25][26] Webber's teammate David Coulthard ended his second session in the barriers after the tunnel, after his car jerked sideways at the crest under braking.
[27] Although Coulthard was unhurt, the position of his stricken car and the subsequent caution flags surrounding it denied many drivers the opportunity to make their final flying laps in the session.
[25] Honda driver Jenson Button, who took 12th behind Timo Glock of Toyota, blamed the disruption for his performance, having prepared his car specifically for the final run.
[28] In contrast to Saturday's dry qualifying session, frequent showers soaked the track on Sunday morning, making racing slippery and potentially hazardous.
[29] Although the showers subsided by early afternoon, they resumed 20 minutes before the start, the changeable conditions forcing teams to delay tyre choices for as long as possible.
[32] Massa held his lead into the first corner at Sainte Devote, while behind him Hamilton used the pit lane exit to pass Räikkönen down the inside.
[34] These positions were maintained for several laps, but the distances between the cars increased, in part because the spray thrown up by their wheels made close racing difficult.
[32] The conditions proved to be crucial when Hamilton made contact with barriers on the outside of Tabac on lap six, necessitating his return to the pit lane for a new set of tyres.
Räikkönen, however, was called into the pit lane for a drive-through penalty after to failing to have his tyres attached by the three-minute warning before the race, dropping him back to fourth.
[36] Hamilton's lead was reduced when the safety car once again deployed on lap 62 after Rosberg crashed at Piscine, hitting both sides of the track and scattering debris.
[32] Alonso, on extreme wet tyres behind Heidfeld, attempted to pass the BMW at the hairpin, but succeeded only in damaging his front wing and forming a stationary queue behind him.
Noticing Glock's success on dry tyres, Kubica asked his team to make a similar change, resulting in his pass on Massa.
[42] Mike Gascoyne, Force India's technical chief, called for the stewards to investigate the incident, but after deliberation no action was taken.
[43][44] "The frustration is that if that was a Force India driver hitting a world champion we'd expect to get a one or two-race ban, but the other way round nothing ever seems to happen" said Gascoyne.