Bottas held off his Mercedes teammate throughout the race from lights to flag under massive pressure to retake the lead of the championship by a single point over Hamilton in yet another one-two finish for the Silver Arrows.
It was Hamilton got the better start of the two Mercedes’ but Bottas was able to hold off his teammate and lead while Verstappen lost a place to Sergio Perez into turn three.
The Ferrari of Leclerc was the car on the move having made it into fourth inside 10 laps while Pierre Gasly’s own recovery drive was looking strong early on. The Frenchman was up to seventh from his pitlane start as those on the softs continued to turn unimpressive lap times.
Ferrari was the first to blink at the front, Vettel was brought into the pits for mediums just as his teammate had caught up showing impressive pace on his older tyres.
Mercedes opted to cover Ferrari off while Leclerc continued to set the timing screens alight, setting the fastest lap of the race on his medium tyres. Bottas’ advantage over his teammate was safe having been serviced first but Vettel was a lot closer to the Silver Arrow of Hamilton after a fastest lap of his own.
Williams’ miserable weekend continued with Robert Kubica being handed a drive-through penalty for being at the end of the pitlane for the start of the race too early.
A brief charge from Hamilton into Bottas’ four-second advantage left him vulnerable to Vettel behind, the Briton reporting over team radio he was already struggling with tyre wear, allowing the Ferrari to catch behind after backing off of his earlier pace.
Romain Grosjean was the first driver to slide down an escape road, pressure from Daniel Ricciardo behind and older tyres than the Renault driver resulting in a locked brake and loss of 11th place.
While Leclerc continued to stretch his stint length as far into the race as possible, Mercedes was eager to get past the slower Ferrari which was bunching up the top three once more.
Ricciardo and Daniil Kvyat were the first drivers to come to blows in the unusually quiet race. Ricciardo out-braking himself into turn three and blocking Kvyat off at turn three but the contact came after the mistake, the Australian reversing into the Toro Rosso and ending both drivers races.
Both Mercedes managed to pass Leclerc after a several laps stuck behind and dutifully let Vettel past but it had closed the top three up to within five seconds of each other. Ferrari finally brought the Monegasque driver in on lap 35 for soft tyres which dropped him back into sixth place and behind the Red Bull of Gasly.
Two laps later than the Italian team would have wanted, Leclerc managed to clear Gasly and set about chasing down the four in front. His late stop meant the top three was covered by just four seconds with under 15 laps remaining but the Frenchman's efforts from the pitlane came to an end 11 laps to go, his Red Bull grinding to a halt out of sixth place.
The virtual safety car made its first appearance of the day while marshals recovered the stricken Red Bull Honda. It was also game over for Grosjean, Haas retiring his car during the VSC period.
Late-race pressure from Hamilton for the lead was the closest on-track fight, the Briton closing to within a second of the lead with just three laps remaining but couldn't pass his teammate to steal the victory.
The fastest lap changed twice in the space of two laps with Leclerc's pit stop paying off on the final lap.