Sandro Cortese beat Maverick Vinales in a dramatic climax to what had already been a thrilling Moto3 race at Estoril.
What initially began as a huge scrap for the lead eventually boiled down to just Vinales (Avintia FTR-Honda) and Cortese (Ajo KTM), with the latter opting to shadow Vinales - to the extent of sitting up early on the straights - for much of the race.
With five laps to go Cortese made his move, but Vinales responded immediately and a frantic shoot-out commenced over the final laps.
Further drama came in the form of backmarkers on the last lap, with Vinales and Cortese diving either side of traffic on the run down to the chequered flag. In the end, victory was decided in Cortese's favour by just 0.083 seconds.
The German takes over the championship lead as a result of his win.
The pair's battle was one of several throughout the field, as positions swapped lap by lap.
Luis Salom (RW Kalex-KTM) and Zulfahmi Khairuddin (Ajo KTM) were one such example, scrapping over the final podium spot throughout the second half of the race. Salom eventually denied the Malaysian his maiden grand prix podium.
The order fluctuated even more further down the field, with myriad riders all challenging for fifth at some point during the race.
The position was eventually claimed by Efren Vazquez (Laglisse Honda) ahead of Niccolo Antonelli (Gresini Honda), while Alex Rins (Monlau Honda) got the better of Danny Kent (Ajo KTM) in the fight for seventh.
Results - 23 laps: Pos Rider Team/Bike Time/Gap 1. Sandro Cortese Ajo KTM 41m34.536s 2. Maverick Vinales Avintia FTR-Honda + 0.055s 3. Luis Salom RW Kalex-KTM + 11.038s 4. Zulfahmi Khairuddin Ajo KTM + 12.195s 5. Efren Vazquez Laglisse FTR-Honda + 20.934s 6. Niccolo Antonelli Gresini FTR-Honda + 20.976s 7. Alex Rins Monlau Suter-Honda + 21.792s 8. Danny Kent Ajo KTM + 21.888s 9. Alexis Masbou Caretta Honda + 23.046s 10. Jakub Kornfeil Ongetta FTR-Honda + 23.310s 11. Brad Binder RW Kalex-KTM + 23.379s 12. Hector Faubel Aspar Kalex-KTM + 23.763s 13. Arthur Sissis Ajo KTM + 24.308s 14. Alberto Moncayo Aspar Kalex-KTM + 25.015s 15. Alex Marquez Monlau Suter-Honda + 26.450s 16. Joan Olive TT Motion KTM + 32.641s 17. Alan Techer Technomag-CIP TSR-Honda + 32.743s 18. Alessandro Tonucci Italia FMI FTR-Honda + 36.511s 19. Marcel Schrotter Mahindra + 53.527s 20. Ivan Moreno Laglisse FTR-Honda + 1m04.014s 21. Toni Finsterbusch MZ Honda + 1m04.064s 22. Manuel Tatasciore Caretta Honda + 1m04.071s 23. Kenta Fujii Technomag-CIP TSR-Honda + 1m30.900s 24. Luigi Morciano Ioda + 1 lap 25. Kevin Hanus Thomas Sabo Honda + 1 lap Retirements: Armando Pontone IodaProject IODA 23 laps Giulian Pedone Ambrogio Next ORAL 23 laps Jasper Iwema FGR Honda 15 laps Louis Rossi Germany FTR-Honda 14 laps Romano Fenati Italia FMI FTR-Honda 14 laps Isaac Vinales Ongetta FTR-Honda 13 laps Danny Webb Mahindra 8 laps Adrian Martin Laglisse FTR-Honda 6 laps Miguel Oliveira Monlau Suter-Honda 3 laps