Ferrari had locked out the front row in a vain attempt to keep the flagging title fight alive for one more round, but botched starts for polesitter Sebastian Vettel and teammate Charles Leclerc ensured Mercedes was in a commanding position to score the requisite 14 points to seal the deal.
Bottas was able to sweep past Vettel into the lead at the first turn, but Hamilton was unable to make an impression on the hard-defending German by the end of the race and was forced to accept third.
But with Leclerc dropping down the order after a first-lap crash with Max Verstappen, ensuring he could finish only sixth, Ferrari was unable to prevent Mercedes extending its championship lead to an insurmountable 179 points with four races remaining, securing the Silver Arrows a sensational sixth-straight title.
Mercedes is also guaranteed the drivers title, with Leclerc and Verstappen, the only two drivers still in contention for individual honours prior to this race, now too far behind on the points table to beat either Bottas or Hamilton to the crown.
“I’m really proud to be part of the team,” said race winner Bottas. “Six in a row is so impressive.
“I’m really proud of every team member — well done, guys and girls.”
Bottas took the chequered flag by a comfortable 13 seconds, but his lead was only secured late in the race after Vettel’s victory threat faded.
Vettel, with Leclerc out of the picture and at risk of being pincered by the Mercedes drivers at either end of him, was put onto a two-stop strategy on lap 16, and Mercedes was forced to follow suit with Bottas on the following tour.
Hamilton, however, was left out until lap 21 to try to make it to the end with a single tyre change.
The Briton was the unhappier of the Mercedes pair, berating his engineer for making a strategic error, but the race swung towards him the longer it ran. He began closing rapidly on Vettel before the German made a second stop on lap 31, and with his way clear he began closing on his leading teammate too.
Bottas was called in for a switch to new soft tyres, handing the lead to Hamilton, but Mercedes, realising it had accidentally handed the Finn the inferior strategy despite having led the race from the start, pit the Briton on lap 42.
Hamilton emerged five seconds behind Vettel, but equipped with fresh soft tyres he closed the gap in just six laps to harry the German home. They weaved their way through traffic, with Hamilton trying his luck out of the final chicane and into the first turn, but the Ferrari was too fast down the straights for the Mercedes to make an impact and he was forced to settle disappointedly for third.
Alex Albon finished fourth after passing the fast-starting McLaren of Carlos Sainz halfway through the race as the last two cars on the lead lap of the race.
Daniel Ricciardo was one of the race’s top performers, recovering from a demoralising 16th in qualifying to finish sixth. The Australian was the only driver in the top 13 to start on the more durable medium tyre before making a late switch to the racier softs for an aggressive end to the grand prix, passing four cars in the last 23 laps.
Charles Leclerc recovered to seventh after taking damage in his first-lap crash with Verstappen and serving 15 seconds of penalties. He and the Dutchman made contact while side by side in turn two and Verstappen bore the brunt of the impact, spinning into the gravel and picking up substantial damage. He eventually retired on lap 15 with brake problems.
Leclerc came away with a broken front wing and a five-second penalty, and though he tried to stay out despite the damage, he was ordered into the pits by the FIA for a new nosecone and penalised 10 seconds for driving with an unsafe car.
Pierre Gasly and Sergio Perez came to blows in their battle for eighth. The Mexican attempted to pass the Frenchman around the outside of the first turn, but they collided, sending Perez spinning into the barriers.
However, a race control system failure triggered the waving of the chequered flag only seconds before the crash, meaning the results were classified one lap earlier. Gasly therefore finished eighth and Perez ninth.
Nico Hulkenberg scored the final point of the race in 10th, losing a place from Perez’s reinstatement in the classification.