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
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