The Mercedes driver led away from pole and dictated the race from the front, crossing the line 4.4 seconds ahead of teammate Valtteri Bottas, with Ferrari title rival Sebastian Vettel third, 36.3s behind the leader.

It was Hamilton's sixth victory of the season and moves him three points clear of Vettel in the drivers' championship, with Bottas further 41 adrift.

Hamilton made a good start from pole, moving right across the track to defend from Lance Stroll and leading into Turn 1.

Esteban Ocon, starting third, took advantage of Stroll getting baulked to sweep around the outside and settle into second.

Further back, Bottas banged wheels with Kimi Raikkonen as they came through the first chicane, eventually making a pass stick to take for fourth.

Raikkonen snatched the position back at the second chicane, but Bottas then swept around the outside of Parabolica to reclaim the place.

Bottas then snatched third on lap three from Stroll before breezing past Ocon the following lap to move into second before setting off in pursuit of Hamilton.

The Finn closed the gap but couldn't get within two seconds off his teammate and ultimately finished second and secure Mercedes's third one-two of the year.

Red Bull's Daniel Ricciardo delivered an impressive recovery drive from 16th, running a very long stint on the softs and passing Kimi Raikkonen late on to take fourth.

Ricciardo emerged on fresh supersofts and set about chasing Vettel, taking chunks out of the Ferrari driver but ultimately ran out of laps.

Raikkonen, who complained of a problem with the rear end of his car in the early stages, pitted early in a bid to leapfrog Ocon and Stroll.

He partially succeeded, getting ahead of Stroll, who was delayed in his stop with a sticky left-rear tyre.

But he had to pass Ocon on track, launching an attack on the approach to the first chicane to snatch the place and going on to finish fifth, ahead of Ocon.

Stroll held off a spirited attack from Williams teammate Felipe Massa to take seventh, with Sergio Perez failing to take advantage of the squabble to end up ninth.

Massa survived contact with Perez and Max Verstappen early in the race to take eighth.

Verstappen was furious with Massa when they collided at Turn 1, the contact giving the Red Bull a front right puncture and dropping him back to the field.

But he recovered to take 10th but only after made contact with Kevin Magnussen on the approach to the second chicane to snatch the position.

It was a miserable race for McLaren, with Stoffel Vandoorne retiring after reporting "no power" and teammate Fernando Alonso following suit on the penultimate lap at the request of the team.