While Daniel Ricciardo may have started in sixth, he scored a stunning first win of the 2018 Formula 1 season as Max Verstappen and Sebastian Vettel collided in an exciting Chinese Grand Prix.
Bottas and Vettel were locked in their own battle for the win until Ricciardo and Verstappen went into the pits again for fresh, soft tyres during a safety car period just past the halfway mark as their rivals stayed on mediums.
Ricciardo then overtook team-mate Lewis Hamilton and then Vettel in quick succession before executing a great pass on Bottas into the tight Turn 6 right-hander for victory.
Bottas fought rearguard action against the recovering Raikkonen to claim third, after Verstappen tipped Vettel into a spin at the hairpin with only 14 laps left in the race.
Vettel 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.
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 consolidated that advantage over the next dozen 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 two 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.8s 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.8s 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 10s 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 Jr and Kevin Magnussen completed the points finishers.