In what was a straightforward race compared to last weekend's incident-filled and attritional Austrian GP at the Red Bull Ring, Hamilton controlled the lead throughout, while Bottas edged a thrilling battle with Max Verstappen for P2 and retained the championship lead.
At the start, Hamilton easily led away from pole, with Verstappen under pressure from the fast-starting Sainz on the outside of the first corner.
As Hamilton ran clear, Sainz's shot across the Turn 1 runoff, which cost him momentum and let Verstappen surge back onto the offensive as they approached the tight, uphill right of Turn 3.
The leaders ran through unscathed but in the pack behind the two Ferrari drivers came together, with Leclerc bouncing onto his teammate's rear wing after a late dive to the inside of his teammate, who was battling Haas' Kevin Magnussen after a slow start.
Vettel's rear wing was broken and he retired as the Ferrari drivers came into the pits just as the safety car was called for the debris from their collision – their second in two seasons after the 2019 Brazil GP – with Leclerc being called into stop a lap later after a front wing change.
The race restarted for lap four of 71 and Hamilton immediately pulled clear of Verstappen with a series of early fastest laps, while Bottas took until lap six to pass Sainz into Turn 4 – where Hamilton and Alex Albon clashed last Sunday – with Albon also getting by the McLaren at the same spot two tours later.
Bottas gave chase to Verstappen as Hamilton continued to build his lead little by little over the Red Bull across the first stint.
The Mercedes drivers began to push hard after the first two laps had been completed, which forced Red Bull to pit Verstappen on lap 24 to ward off the threat of being jumped by an early Bottas stop – as by this point Albon was too far behind to back up his teammate.
Verstappen rejoined on fresh mediums ahead of Albon in third and Hamilton stayed in the net lead when he came in at the end of lap 27.
Bottas stayed out for a further seven laps before he too came in to switch to the medium tyres and he came out again third, 8.2s behind Verstappen.
The Finn initially struggled to close the gap but Mercedes told him he would have the chance to attack Verstappen in the final stages.
As Hamilton surged into a big lead across the second stint to take his first win of 2020 by 13.7s at the flag, Bottas suddenly began to take chunks out of Verstappen's advantage – the Red Bull's front wing also sustaining damage to its right-hand endplate.
Bottas launched an attack around the outside of Turn 3 on lap 66 and then used DRS to blast alongside Verstappen into the downhill right of Turn 4 – but Verstappen fought back and edged him wide into Turn 6 to hang onto second.
But it was only for one more lap as Bottas used DRS to get further ahead into Turn 4 on lap 67, defending the outside lead to make sure of second place
Behind the podium finishers came Albon, who survived late contact with Sergio Perez at Turn 4 in near copy of his incident with Hamilton a week ago, although Albon was on the defensive this time which broke the Racing Point's front wing.
That damage undid a sensation charge from Perez, who had started in P17, and as he limped to the flag he was overtaken by Lando Norris – who had put in his own late-race rise – at the event's penultimate corner.
Perez hung on in a drag race to the line to beat his teammate Lance Stroll – also rising from a lower-than-expected grid spot in P12 – while Daniel Ricciardo took eighth as his contra-strategy of starting on the mediums did not pay off.
Sainz had handed Norris a place just before he pitted late on to take fresh softs for an attempt at the fastest lap, which Verstappen also did, with Sainz ultimately taking the extra point on offer.
Daniil Kvyat rounded out the top 10 – the only driver to make the hard tyres work, after his teammate Pierre Gasly abandoned that plan with a second stop to move back to the softs.
Gasly was hit by Ricciardo at the first corner and lost out to the Renault driver as they scrapped over P7 at the start, but his race unravelled with the second stop and he finished P15, just ahead of the Williams pair.
George Russell started strongly from his P11 grid spot but fell to last at the safety car restart when he skated into the Turn 6 gravel as he battled Magnussen (who finished P12, just ahead of teammate Romain Grosjean and behind Alfa Romeo's Kimi Raikkonen).
Esteban Ocon was the only other retirement with suspected cooling problems, coming to a stop on lap 25 after he had been battling teammate Ricciardo in the opening stint.
|3||Max Verstappen||Red Bull||33.698|
|4||Alex Albon||Red Bull||44.400|
|6||Sergio Perez||Racing Point||1'02.387|
|7||Lance Stroll||Racing Point||1'02.453|
|9||Carlos Sainz Jr.||McLaren|
|11||Kimi Raikkonen||Alfa Romeo|
|14||Antonio Giovinazzi||Alfa Romeo|
|View full results|