Bottas and Leclerc were involved in an intense scrap in the final few laps of the Grand Prix, but the Monégasque driver managed to stay ahead to win at the home of Ferrari. Even with fresher tyres, the Finn could not find a way past after a costly mistake at turn 1.
Lewis Hamilton finished in third after a late pit stop, but battled hard with Leclerc during the first half of the race. The pair both made mistakes and went off the circuit, but even though Leclerc was waved the black and white flag it was the Ferrari driver than came out victorious.
Hamilton lost out to Bottas when he went straight on at the first chicane, and then dropped back to his teammate. The Brit made a late pit stop to go for the fastest lap, a feat which he achieved.
In fourth place was Daniel Ricciardo, who drove an impressive race for Renault to score their best finish of the season so far. The Australian was nearly fifteen seconds ahead of his teammate Nico Hulkenberg who came across the line in fifth place.
After a rocky start to the race, Alexander Albon finished just over a second behind Hulkenberg in sixth place. Albon duelled with Carlos Sainz in the early stages of the race but was pushed wide at the Curva Grande and the pair collided.
The Anglo-Thai driver was then handed a five-second penalty for going off the track gaining an advantage when passing the Haas of Kevin Magnussen. He re-gained a lot of his lost time after his pit stop with a few impressive overtakes.
Sergio Perez had an almost perfect afternoon in his Racing Point, finishing in seventh place from the back of the grid. The Mexican also managed to stay ahead of a charging Max Verstappen for the last ten laps of the race, showing impressive pace along the straights.
Verstappen was next up on the road, just 0.6s behind Perez. The Dutchman had an eventful race, with an incident at the start meaning his Red Bull team had to change his front wing at the end of lap 1. He then went on a charge, overtaking half of the field on his way to eighth place.
Antonio Giovinazzi surely made up for his costly mistake at the end of last week's Belgian Grand Prix with his best finish in Formula 1 in front of his home crowd. He was closely followed by Lando Norris in the McLaren, with the British rookie making up a number of places throughout a strong recovery drive to round out the top 10.
Pierre Gasly missed out on points for Toro Rosso, with the Frenchman finishing in eleventh. He struggled to stay close to Norris throughout the race, only attempting a move once just after his pit stop.
His teammate Daniil Kvyat showed much stronger pace in the sister car, but unfortunately for the Russian after gaining a good amount of time under the virtual safety car his Honda engine gave up the ghost.
Lance Stroll was unfortunate to not score points after starting from within the top ten, as he was span around by Sebastian Vettel. He received a drive-through penalty after almost making contact with Gasly on his return to the circuit.
Vettel had a race to forget, as the German span at the Ascari chicane. When he tried to rejoin the track, he lit up the rear tyres and collided with Stroll. He received a ten-second stop-go penalty for the offence, the harshest penalty the stewards can give aside from disqualification.
Other retirees were Kevin Magnussen and Carlos Sainz, with the Spaniard retiring due to a loose wheel after his pit stop. Sainz was running an impressive sixth place for McLaren, and this is another painful reitrement for the team. It has allowed Renault to half the gap to the Woking outfit in the constructors championship.
Bahrain International Circuit - Winter testing