Pole-sitter Bottas comfortably led the first half of the grand prix, but the title equation weighed heavily on the Mercedes pit wall, with Hamilton and Vettel the only realistic contenders remaining for the drivers championship.
At half-distance, with blistering on Hamilton’s rear-left tyre providing a timely trigger, Bottas was ordered to cede what would have been his first win of the season for the good of his teammate’s championship campaign.
“I think today it was a real team effort,” Hamilton said, visibly conflicted. “Though it doesn’t feel spectacular.
“It’s actually quite a difficult day because Valtteri did a fantastic job all weekend. He was a real gentleman to let me by.
“The team’s done such an exceptional job. Usually we’d be elated, but it’s difficult for Valtteri.”
Bottas understood his part in the broader championship picture, but the Finn cut an understandably moody figure out of the car.
“Obviously a good result for us as a team, we got maximum points,” he said. “But personally, as everyone saw, it was quite a difficult race.
“Lewis is now fighting for the championship and we’re fighting for the constructors [championship].
“We always have a plan, but it’s difficult to predict what’s going to happen in the race, how it’s going to go.
“It is what it is.”
The messy situation – albeit certainly understandable in the context of what has been up until the start of October a closely contested championship battle – proved a convenient distraction from Vettel’s rapidly evaporating title hopes after finishing an ineffectual third.
Ferrari was off the Mercedes’s pace for the entire must-win weekend, and Vettel could do little but admit out of the car that he had no answer.
“It was tricky,” he said. “You saw that they worked very good together.
“I tried my best to put pressure on Valtteri, but I couldn’t get close enough.”
The German wasn’t subdued in defeat, however, having made an attempt to wrest second place from Hamilton into the first turn at the beginning of the race, only for the Briton to gain the benefit of Bottas’s slipstream and power ahead into turn two.
From there strategy became Ferrari’s only option to get ahead of Hamilton, and the Scuderia went aggressive, pitting on Vettel on lap 14 for a new set of soft tyres – Bottas had stopped for the same yellow-striped compound one lap earlier – to undercut the championship leader, who came in on the following lap in response.
The two went side-by-side as Hamilton emerged from pit lane, and the Mercedes driver was forced to concede the place into turn two – but any Ferrari celebrations proved premature, because by turn 13 Vettel had locked up, opening the door to a Hamilton challenge that came at turn two on the following lap.
Sebastian robustly defended his position, but Hamilton clung to his side around turn three to seal the deal into turn four, after which Vettel couldn’t challenge him again.
The question for Mercedes now became one of finishing order, and with Bottas only a theoretical chance of winning the championship, the call for him to cede the lead to his teammate seemed inevitable long before it came on lap 25.
Hamilton was allowed to take the chequered flag ahead of Bottas, with Vettel and Ferrari teammate Kimi Raikkonen completing the top four.
Max Verstappen finished a sensational fifth after starting 19th on the grid due to a litany of power unit and gearbox penalties.
The Dutchman started on the soft-compound tyre, the most durable of the range this weekend, and made up six places on the first lap before rising to fifth by lap eight.
The 21-year-old inherited the lead when the Mercedes and Ferrari cars made their sole stops – indeed he led the most laps of any driver – but his unavoidable lap-43 stop for new ultrasoft tyres dropped him out of podium contention, leaving him to finish fifth ahead of Red Bull Racing teammate Daniel Ricciardo.
Charles Leclerc finished a phenomenal seventh for Sauber. The Monegasque driver jumped Esteban Ocon on the first lap and pulled a gutsy move around the outside of turn three to pass Kevin Magnussen on lap two.
Behind the Dane came Force India pair Esteban Ocon and Sergio Perez, who collected the last three points of the race for Force India.