When the safety car finally pulled in to release the pack seven laps in, it was polesitter Ricciardo who stormed away, as a slow Nico Rosberg struggled with suspected glazed brakes and cost Hamilton heaps of time before Mercedes finally instructed the German to let his team mate by on the 16th lap.
Hamilton then set off after Ricciardo, but the gap only came down tenth by tenth until the Red Bull driver joined many of his rivals who had already switched from wet Pirelli tyres to intermediates as the rain eased, on the 23rd lap.
Crucially, Mercedes kept Hamilton out - a reversal of last year - as they gambled on being able to switch straight to slicks as track conditions improved. From the 24th until the 31st lap, Hamilton kept the Australian at bay, before diving in for ultrasoft slicks. Red Bull immediately appeared to have covered that by bringing Ricciardo in for supersofts. Incredibly, however, a communication issue meant the tyres weren’t ready…
Hamilton thus kept the lead, but the fight was on.
On the 37th lap Hamilton overshot the chicane after losing time and traction behind a backmarker and Ricciardo got a run on him as they reached the exit, but Hamilton covered that - legally, as the stewards decided after an investigation - and after that the Red Bull driver never really got close enough to challenge.
The red-banded tyres looked the better bet for the 46 laps that remained after the stops, and it appeared that Red Bull had at least chosen them correctly. But this day all three of Pirelli’s compounds had their moments - Hamilton and Ricciardo, plus the soft-shod Sergio Perez in the Force India and Ferrari’s Sebastian Vettel who were also fighting tooth and claw for the final podium place, had their turns setting fastest laps. Somehow Hamilton kept his rubber alive as the gap between them ebbed and flowed. Yet Ricciardo never gave up.
At the end, as delight and relief imbued Hamilton, who saw his championship deficit to Rosberg slashed from 43 to 24 points with another 15 races left, Ricciardo was uncharacteristically glum, refusing Martin Brundle’s podium invitation to discuss his race in detail. Of course it wasn’t Hamilton with whom he was angry - though he wasn’t impressed with the way his move had been rebuffed - but his own team, whom he felt had let him down and cost him potential victory for the second race in a row…
Perez was ecstatic with his podium run for Force India, which left Ferrari once again defeated by an underdog, while further back a tremendous drive by Fernando Alonso gave McLaren a great fifth ahead of Nico Hulkenberg in the second Force India, who snatched sixth place from Rosberg exiting Rascasse on the final lap.
Carlos Sainz was eighth for Toro Rosso, as Jenson Button made it two McLarens in the points again as he fended off Felipe Massa’s Williams which took the final top-ten spot.
Massa’s team mate Valtteri Bottas was 11th at the flag from the unlucky Esteban Gutierrez, who was running well in the points at one stage for Haas, but their positions were reversed post race when Bottas was handed a 10-second time penalty for a late collision with the Mexican.
Romain Grosjean in the second Haas came home 13th, ahead of the Manors of Pascal Wehrlein (despite a combined 20-second time penalty for running too fast under one of the many virtual safety cars and then for ignoring blue flags) and Rio Haryanto.
Jolyon Palmer crashed the moment the safety car let the racing begin on the eighth lap, after losing control of his Renault over white lines on the pit straight. Then Kimi Raikkonen understeered off at the hairpin and ran over his own front wing on the 11th lap before retiring his Ferrari in the chicane escape road.
Daniil Kvyat’s Toro Rosso had suspected electronic problems before the start and pitted for a replacement steering wheel. He fell a lap behind, and when trying to fight back he got into a needless spat with Kevin Magnussen. His move at Rascasse put them both into the wall and is being investigated by the stewards. The Russian retired, and later the Dane nosed his Renault into the wall at Mirabeau and also had to stop.
Max Verstappen drove like a demon for Red Bull and overtook more cars than anyone, before his third crash in two days saw him go off the road approaching Casino Square on the 34th lap.
Finally, the two Saubers collided at Rascasse just after Felipe Nasr had been instructed to let team mate Marcus Ericsson by; both suffered damage which led to their demise and Ericsson picked up a three-place grid drop for the next round after stewards deemed him to blame for the coming-together.
Rosberg now has 106 points to Hamilton’s 82, with Ricciardo moving to third on 66 ahead of Raikkonen’s 61 and Vettel’s 60.
In the constructors’ stakes, Mercedes have 188 points to Ferrari’s 121, Red Bull’s 112, Williams’ 66, Force India’s 37, Toro Rosso’s 30 and McLaren, whose 24 move them ahead of Haas with 22.