Max Verstappen sealed a victory for Red Bull, ahead of ex-teammate and sister team driver Pierre Gasly. Hamilton finished the race third, but was later demoted for an accident with yet another Red Bull driver, Alex Albon.
Pole sitter Verstappen maintained the lead at the start as Hamilton attacked Vettel on the outside into Turn 1 and grabbed second.
Hamilton fell away from Verstappen through the first stint as Verstappen held a lead of around 2.4s initially, which Hamilton had whittled down to 1.8s when he dived into the pitlane at the end of lap 20.
That committed him to a two-stop strategy by switching to a fresh set of softs, and though Red Bull responded one lap later Hamilton’s massive pace advantage on new tyres meant he was set to jump Verstappen with relative ease.
He caught Leclerc, who was yet to stop having started 14th, at the end of the lap but still moved ahead of Verstappen.
Hamilton passed Leclerc on the outside of the fast left-hander at the end of the middle sector but Verstappen followed him through immediately, darting down the inside of Leclerc into the Juncao left-hander that follows.
Verstappen passed Hamilton at turn 1 as the Britain ran out of battery power.
The gap increased until a safety car was brought out by Bottas’ Mercedes slowing and smoking from the engine.
Verstappen pitted while Hamilton stayed out, meaning he had track position, but older tyres.
At the restart, despite Hamilton backing up the pack, Verstappen got alongside into turn 1 and took the lead with a stunning move.
Two laps later, Leclerc and Vettel tussled, with the later moving over to the left, hitting his teammate and causing a full suspension failure, he ended up with a puncture, ending both of their races.
Another safety car allowed Hamilton to pit, now behind Albon and Gasly.
With just two laps remaining, Hamilton made short work of Gasly and set about attacking Albon. They came together and Hamilton dropped to 3rd while Albon was 14th.
Hamilton caught up with Gasly and in a drag race on the final corner to the line, the Toro Rosso held on and took 2nd.
Hamilton finished 3rd but was later demoted to 7th for the move on Albon, gifting a sensational 3rd to Carlos Sainz, who started last on the grid.
Raikkonen finished 5th (4th after incident), followed by Giovinazzi, Ricciardo, Hamilton, Norris Perez and Kvyat.