Daniel Ricciardo charged from sixth to score an awesome victory at the Chinese Grand Prix as Max Verstappen and Sebastian Vettel collided.
Bottas and Vettel were locked in their own battle for the win until Ricciardo and Verstappen pitted again for fresh, soft tyres during a safety car just after the halfway mark as their rivals stayed on mediums.
Ricciardo then overtook his team-mate, Lewis Hamilton and Vettel in quick succession before pulling off an incredible pass on Bottas into the tight Turn 6 right-hander for the victory.
Bottas fought off against the recovering Kimi Raikkonen to claim third, after Verstappen tipped Vettel into a spin at the hairpin with 14 laps to the flag.
Vettel had led from pole in the opening stint and built a lead of just over three seconds over Bottas, and Mercedes moved first on strategy by pitting Bottas on lap 19 of 56.
Ferrari reacted a lap later, but a great middle sector from Bottas helped him sweep past into Turn 1 as Vettel exited the pits.
Bottas resisted that advantage over the next few laps until Vettel had a brief chance to attack when they caught Raikkonen, who was running a much longer opening stint.
Raikkonen kept Bottas behind into the hairpin at the end of the lap but was powerless to stop an aggressive attack from his fellow Finn around the outside of Turn 1 immediately after.
Vettel followed suit swiftly and put pressure on Bottas into Turn 6 but was rebuffed, and Bottas had eked back out of DRS range when the Toro Rossos collided at the hairpin.
Pierre Gasly misjudged a move on Brendon Hartley and spun them both round, littering the track with broken carbon fibre and wing mirror glass that required a safety car in order to clear it up.
Verstappen and Ricciardo, who were running third and fifth either side of Hamilton after a good first stint on ultrasofts with the others on softs, immediately dived for the pits and rejoined fourth and sixth.
Ricciardo made short work of Raikkonen, who had only just switched to mediums before the safety car and also stayed out, before catching the squabbling Hamilton and Verstappen.
He passed his team-mate when Verstappen went off-track trying to pass Hamilton on the outside of Turn 7, then nailed Hamilton into the hairpin.
At this point Ricciardo was 2.8 seconds off the lead, but he hacked into that gap and breezed past Vettel on the back straight using DRS.
Bottas had a small lock-up soon after Ricciardo was into second, and with 12 laps to go they were nose-to-tail.
Ricciardo acted swiftly into Turn 4, getting inside Bottas even though his rival defended and forcing him to concede the place.
From there he bolted clear to win by 8.8 seconds as Bottas just about held off Raikkonen, who was given a free pass into third when Verstappen hit Vettel.
Verstappen had caught Vettel on lap 43 and tried an opportunistic move inside the hairpin as Vettel ran deep.
But the two collided when Vettel turned in and both spun in unison, delaying Hamilton in the process.
They rejoined but Verstappen picked up a ten-second time penalty, so even though he recovered to fourth on the road he was dropped to fifth – behind Hamilton – in the results.
That was no consolation to Vettel, who fell to eighth at the flag after struggling post-contact and was passed by Nico Hulkenberg’s Renault and Fernando Alonso’s McLaren.
Behind Vettel, who was furious at Alonso’s aggressive pass through the Turn 1-2 complex, Carlos Sainz and Kevin Magnussen completed the points finishers.
What a difference 24 hours make for Daniel Ricciardo. Following an engine failure in FP3, the Red Bull team managed to repair the honey badger’s car just in time for qualifying. Ricciardo repays the result with a fine race win.
As for the incident between Sebastian Vettel and Max Verstappen, that was a silly mistake by the Red Bull driver. Too impatient and misjudged the opportunity to pass the championship leader. A time penalty was issued to Verstappen but Vettel took a bigger hit, in loosing important points. An advice to Max – calm down.
Chinese Grand Prix, race results:
1 Daniel Ricciardo Red Bull-Renault 56 1h35m36.380s
2 Valtteri Bottas Mercedes 56 8.894s
3 Kimi Raikkonen Ferrari 56 9.637s
4 Lewis Hamilton Mercedes 56 16.985s
5 Max Verstappen Red Bull-Renault 56 20.436s
6 Nico Hulkenberg Renault 56 21.052s
7 Sebastian Vettel Ferrari 56 30.639s
8 Fernando Alonso McLaren-Renault 56 35.286s
9 Carlos Sainz Renault 56 35.763s
10 Kevin Magnussen Haas-Ferrari 56 39.594s
11 Esteban Ocon Force India-Mercedes 56 44.050s
12 Sergio Perez Force India-Mercedes 56 44.725s
13 Stoffel Vandoorne McLaren-Renault 56 49.373s
14 Lance Stroll Williams-Mercedes 56 55.490s
15 Sergey Sirotkin Williams-Mercedes 56 58.241s
16 Marcus Ericsson Sauber-Ferrari 56 1m02.604s
17 Romain Grosjean Haas-Ferrari 56 1m05.296s
18 Pierre Gasly Toro Rosso-Honda 56 1m06.330s
19 Charles Leclerc Sauber-Ferrari 56 1m19.066s
20 Brendon Hartley Toro Rosso-Honda 51 Not running
1 Sebastian Vettel 56
2 Lewis Hamilton 45
3 Valtteri Bottas 40
4 Daniel Ricciardo 37
5 Kimi Raikkonen 30
6 Nico Hulkenberg 22
7 Fernando Alonso 20
8 Max Verstappen 18
9 Pierre Gasly 12
10 Kevin Magnussen 11
11 Stoffel Vandoorne 6
12 Carlos Sainz 3
13 Marcus Ericsson 2
14 Esteban Ocon 1
15 Sergio Perez 0
16 Charles Leclerc 0
17 Romain Grosjean 0
18 Lance Stroll 0
19 Sergey Sirotkin 0
20 Brendon Hartley 0
1 Ferrari 86
2 Mercedes 85
3 Red Bull-Renault 55
4 McLaren-Renault 26
5 Renault 25
6 Toro Rosso-Honda 12
7 Haas-Ferrari 11
8 Sauber-Ferrari 2
9 Force India-Mercedes 1
10 Williams-Mercedes 0