Hiroshi Aoyama took the 250cc championship lead after beating Alvaro Bautista to victory in a thrilling Jerez race.
The Japanese rider only sealed the win at the final corner of the final lap as Bautista slid wide while trying desperately to secure a home win.
Pole-sitter Alex Debon had led the early laps under huge pressure from Bautista, Marco Simoncelli and Hector Barbera, before being elbowed back to fourth as the other trio commenced an epic lead battle that raged for the entire distance.
As Simoncelli and Bautista repeatedly swapped first place - and Barbera lurked right behind them - Aoyama's Scot Honda steadily crept into contention, joining the lead group around one third into the race.
He soon forced his way to the front of the pack, but could not escape from Bautista, who led into the closing stages.
Halfway around the final lap, Aoyama sliced past Bautista but they still had to negotiate the classic passing place at the final hairpin. Bautista jinked out from behind the Honda and dived down the inside under braking, briefly retaking the lead only to run wide on the exit and allow Aoyama to accelerate back past and claim his first win of the year.
Simoncelli fell away a little in the closing stages, holding off Barbera for third and getting his title defence underway after missing Qatar and retiring in Japan.
Thomas Luthi beat Mattia Pasini to fifth, with Devon crashing out while battling in this group. Qualifying star Jules Cluzel dropped back to eighth, behind Gabor Talmacsi.
Pos Rider Bike Time 1. Hiroshi Aoyama Honda 45m08.805s 2. Alvaro Bautista Aprilia + 0.132s 3. Marco Simoncelli Gilera + 2.706s 4. Hector Barbera Aprilia + 2.769s 5. Thomas Luthi Aprilia + 17.946s 6. Mattia Pasini Aprilia + 17.950s 7. Gabor Talmacsi Aprilia + 26.288s 8. Jules Cluzel Aprilia + 26.472s 9. Roberto Locatelli Gilera + 27.646s 10. Raffaele de Rosa Honda + 32.369s 11. Mike di Meglio Aprilia + 32.617s 12. Shoya Tomizawa Honda + 34.241s 13. Lukas Pesek Aprilia + 36.889s 14. Hector Faubel Honda + 37.237s 15. Ratthapark Wilairot Honda +1m16.786s 16. Imre Toth Aprilia +1m25.509s 17. Bastien Chesaux Honda + 1 lap 18. Aitor Rodriguez Aprilia + 1 lap 19. Vladimir Leonov Aprilia + 1 lap 20. Valentin Debise Honda + 1 lap Retirements: Axel Pons Aprilia 22 laps Ivan Maestro Aprilia 18 laps Alex Baldolini Aprilia 10 laps Alex Debon Aprilia 9 laps Karel Abraham Aprilia 3 laps