Rosberg bogged down at the start, dropping to fourth as Verstappen went round the outside of Ricciardo through Turn 1 to take second behind clear leader Hamilton.

At the first round of stops, Mercedes and Red Bull split strategies, with Rosberg and Verstappen taking the super-softs and Hamilton and Ricciardo the softs – though all the leaders ultimately ended up on three-stop plans.

Verstappen struggled with that rubber, allowing Rosberg to close the gap and then pit early to try the undercut.

Red Bull responded by bringing the Dutchman in early too and he rejoined ahead but Rosberg got in the slipstream on the run down to the hairpin.

Rosberg dived down the inside, with Verstappen moving in the braking zone before then giving him some room.

Rosberg ran deep into the corner, pushing Verstappen wide and then off track. Following an investigation, the Mercedes driver was handed a five-second time penalty to take at his final pitstop.

Hamilton and Ricciardo ran longer before their second stops, and went to super-softs whereas Verstappen and Rosberg had gone for softs.

That helped Ricciardo to close on and pass Verstappen, and when he took more super-softs at the last stops while Hamilton reverted to softs he mounted a charge towards the lead.

Hamilton had enough in hand, though, raising his pace when required to stay clear of Ricciardo and win again.

Rosberg appeared to be held for longer than five seconds for his penalty at his final stop and rejoined fourth, losing all hope of rescuing a podium.

Ferrari was largely anonymous with Sebastian Vettel fifth, 32.5s adrift at the chequered flag and team-mate Kimi Raikkonen 4.4s further back after they swapped positions at the start.

It meant Ferrari dropped behind Red Bull, which scored its first double podium since Hungary 2015, to third in the constructors’ championship, 14 points adrift.

Nico Hulkenberg was seventh ahead of Jenson Button with Valtteri Bottas ending up ninth after a falling behind both during a long final stint on the soft tyre.

Sergio Perez snatched 10th from Fernando Alonso with three laps to go, and got within 1.5s of Bottas at the flag.

Felipe Massa and Felipe Nasr were the only two retirements, with the Williams driver struggling after being hit by Jolyon Palmer at Turn 6 on the first lap, then pulling into the garage mid-race.