Hamilton and Vettel had an on-track run-in while the race was neutralised, which yielded a penalty for the latter – but a loose headrest denied Hamilton what could've been a comfortable cruise to victory.

This left Ricciardo, who qualified 10th and looked well and truly out of contention after stopping early to have debris cleared out of a brake duct, in position to take his fifth grand prix victory.

The Aussie headed home Valtteri Bottas and Williams rookie Lance Stroll, the latter picking up a maiden podium just two weeks on after scoring his first points in F1 with a ninth-place finish in Montreal.

Bottas had run a lap down after a collision with Kimi Raikkonen – but allowed to unlap himself during one of the race's many interruptions. Chaos ahead allowed him to find his way into third, and he reeled in Stroll, beating him to the chequered flag by a tenth to claim runner-up.

At the start, the Mercedes drivers had maintained a 1-2, but Bottas suffered wheelspin coming out of the first corner, allowing Raikkonen to enter the left-hander Turn 2 alongside him.

Bottas kept to the inside line, bouncing off the kerb and understeering into his compatriot, with the contact sending Raikkonen into the outside wall.

The Ferrari appeared unscathed at first, although Raikkonen did slip behind Vettel, Sergio Perez and Max Verstappen, whereas Bottas was forced to crawl to the pits with a right-front issue and rejoined a lap down.

The gap between leaders Hamilton and Vettel ebbed and flowed during the first stint, with the Brit ahead by over three seconds when the race was neutralised by a safety car for the first time.

The culprit was Daniil Kvyat, who had earlier run wide at Turn 1 at the start and rejoined sharply, with Toro Rosso teammate Carlos Sainz spinning as a result.

While Sainz dropped to the back, Kvyat had carried on, but what appeared a a technical issue left him stranded exiting the castle section on lap 11.

Shortly thereafter, it was also race over for another Renault-engined car in the Red Bull of Verstappen, who was pressuring Perez for third before radioing in a power unit issue and retiring in the pits.

The safety car, which lasted for several laps and allowed all the leading runners to swap their supersofts for softs, was back in on lap 16 – with Hamilton speeding up early on the main straight and immediately establishing a lead over Vettel.

The German even came under pressure from Perez, but saw off the Mexican's attack by braking later on the inside of Turn 1, while teammate Raikkonen fell prey to both Felipe Massa and Esteban Ocon, who shuffled him down to sixth.

Immediately, the race was suspended again due to debris in several parts of the circuit, and another chaotic restart followed a few laps later.

First, Vettel made contact with the rear of Hamilton's car as the Briton tried to back the pack up for the restart. The German was irate, pulling alongside Hamilton and gesticulating at his rival on exit of Turn 15 – as his Ferrari whacked against the side of the Mercedes.

Vettel, his front wing damaged in the initial contact, then had to fend off Massa and Perez into Turn 1, although kept position successfully again. Instead, there was drama for the Force Indias, as Ocon tried to edge past Perez on exit of Turn 2, but ended up squeezing his teammate too close to the wall, which resulted in contact.

The chaos was followed by another debris-caused safety car, and the red flags were soon thrown out. Perez looked to have retired in the pits – as did Raikkonen, whose right-rear tyre came apart – but both were allowed to rejoin, albeit a lap down, after the 20-minute stoppage.

At the restart, Hamilton and Vettel – back on supersofts - maintained position with relative ease, as Ricciardo passed both Stroll and Massa, the latter forced into retirement due to a broken rear damper shortly afterwards.

The Aussie's overtakes proved crucial shortly thereafter, as the two drivers ahead of him had to visit the pits. Vettel, having served a 10-second stop-and-go, rejoined right ahead of Hamilton, who had had a loose headrest fixed.

Vettel and Hamilton ran in tandem through the midfield for the rest of the race but could do no better than fourth and fifth respectively, having caught up to the Stroll-Bottas battle on the final lap.

Ocon and Haas driver Magnussen had both run in a podium position after the red flag, but had to do with sixth and seventh in the end.

Sainz recovered to eighth, with Fernando Alonso scoring McLaren's first points of the season in ninth.

The Sauber of Pascal Wehrlein took 10th. Wehrlein ran behind teammate Marcus Ericsson for much of the race, and their battle even yielded contact, but the team appeared to order the German ahead of the Swede amid the lingering threat of McLaren's Stoffel Vandoorne – who came home 12th.

Romain Grosjean was a lap down in 13th, with Raikkonen classified 14th and Perez retiring after another visit to the pits.

Renault drivers Nico Hulkenberg and Jolyon Palmer were both among the retirements, with Palmer pulling into the pits early on with an issue and Hulkenberg demolishing his right-front suspension at Turn 7.