Isack Hadjar was promoted to victory on his F3 sprint race debut after on-the-road winner Oliver Bearman was handed a five-second time penalty for breaching track limits.
Zak O'Sullivan led away from reverse-grid pole and held off the advances of Bearman as they went into turn one side-by-side, with the former managing to maintain the lead.
As the top two built a gap to the chasing pack, there were overtakes aplenty as David Vidales and Hadjar swapped positions, with the latter also losing out to the Trident of Zane Maloney.
Breaking the golden rule of racing, the ART team-mates of Victor Martins and Gregoire Saucy came together at turn one and caused damage to both cars. As a result, both drivers retired from the race.
Back at the front, Prema Racing's Bearman closed down on O'Sullivan and grabbed the lead into turn three on lap five, while behind them Maloney had Hadjar and Alexander Smolyar for company as the trio fought for the final spot on the podium.
As the race continued O'Sullivan found himself struggling for grip as the tyres wore away, with the Williams Academy driver soon finding himself falling into the clutches of the chasing pack before surrendering his place on the podium.
Bearman continued to control the pace from the front and crossed the line first before the news emerged the Briton had exceeded track limits, resulting in a five-second penalty and a promotion to victory for Hitech driver Hadjar.
MP Motorsport's Smolyar completed the podium, while behind him the PREMA of Arthur Leclerc just missed out on depriving Maloney of P4 by 0.015s as the duo drag-raced to the line.
Bahrain F3 sprint race results
1. Isack Hadjar [Hitech] 37:30.285
2, Oliver Bearman [PREMA] +1.589
3. Alexander Smolyar [MP Motorsport] +3.593
4. Zane Maloney [Trident] +5.649
5. Arthur Leclerc [PREMA] +5.664
6. Zak O’Sullivan [Carlin] +8.850
7. Caio Collet [MP Motorsport] +9.140
8. Kaylen Frederick [Hitech] +11.479
9. Juan Manuel Correa [ART Grand Prix] +12.153
10. David Vidales [Campos] +19.134
11. William Alatalo [Jenzer] +21.251
12. Reece Ushijima [Van Amersfoort] +21.871
13. Jonny Edgar [Trident] +28.399
14. Ido Cohen [Jenzer] +29.919
15. Kush Maini [MP Motorsport] +30.741
16. Nazim Azman [Hitech] +34.890
17. Rafael Villagomez [Van Amersfoort] +34.911
18. Ayrton Simmons [Charouz] +44.886
19. Francesco Pizzi [Charouz] +45.648
20. Enzo Trulli [Carlin] +46.577
21. Hunter Yeany [Campos] +49.278
22. Brad Benavides [Carlin] +53.412
23. Laszlo Toth [Charouz] +53.720
24. Roman Stanek [Trident] +1:07.166
25. Franco Colapinto [Van Amersfoort] +1:16.651
26. Niko Kari [Jenzer] +1:39.371
27. Jak Crawford [PREMA] +1:40.417
28. Pepe Marti [Campos] +1 lap
29. Gregoire Saucy [ART Grand Prix] DNF
30. Victor Martins [ART Grand Prix] DNF