Hector Barbera will graduate to MotoGP next season with at least three 250cc victories under his belt after taking his second win of the 2009 season at Misano.
Barbera triumphed in a thrilling race that may have marked the end of reigning champion Marco Simoncelli's title hopes.
Simoncelli, winner of the last two races to close to within 27 points of leader Hiroshi Aoyama, fell from a close second behind Mattia Pasini at the halfway mark of the 26 laps.
The Italian span out in front of his home fans after losing the rear of his Metis Gilera on corner exit, due to apparent traction control problems.
That left Pasini and Barbera battling for the lead, with a 1.5sec gap to title leaders Alvaro Bautista and Hiroshi Aoyama. The Japanese in turn was only just ahead of Bautista's Aspar team-mate Mike di Meglio.
Aoyama, unusually ragged in the early laps, made several attempts to escape from the Aspar sandwich, but his Scot Honda was still between the red machines with ten laps to go.
At that point both Aoyama and di Meglio both blasted past Bautista along the home straight, with the Frenchman then outbraking Aoyama into the hairpin for third.
Bautista and Aoyama traded fourth time and time again over the closing laps, before the final lap began with Aoyama still between the Aspar machines. Bautista soon attacked and the pair moved passed di Meglio halfway through the lap.
Aoyama launched a last-gasp attempt at third at the final turn, but Bautista got the better exit and crossed the line just 0.006sec ahead of Aoyama to close to within 13 points of the title lead with four rounds remaining. Simoncelli is now 40 points back.
Meanwhile, Pasini and Barbera - who collided through the super-fast right hander in last year's event, sending a furious Pasini down - battled hard to the end, with Barbera narrowly ahead as the last lap began.
Several passes later and Barbera was back in front, then did a good job of staying defensive to the flag, with Pasini pinning his hopes on a better exit from the final corner.
The Italian, winner in front of his home fans earlier in the year at Mugello, came just 0.04sec short at the flag.
crash.net / Eurosport
Race live standing
P. Driver Team Time 1 Héctor Barberá Pepe World Team 43:23.353
2 Mattia Pasini Team Toth Aprilia 43:23.393
3 Alvaro Bautista Mapfre Aspar Team Aprilia 43:25.044
4 Hiroshi Aoyama Scot Racing Team 250cc 43:25.050
5 Mike Di Meglio Mapfre Aspar Team Aprilia 43:25.274
6 Jules Cluzel Matteoni Racing 43:32.555
7 Alex Debon Aprilia Aeropuerto-Castello-Blusens 43:33.836
8 Raffaele De Rosa Scot Racing Team 250cc 43:34.713
9 Hector Faubel Thai Honda PTT SAG 43:42.306
10 Thomas Luthi Emmi Caffe Latte Aprilia 43:47.833
11 Karel Abraham Aprilia Cardion 43:48.033
12 Shouya Tomizawa CIP Moto-GP250 44:14.874
13 Alex Baldolini WTR San Marino Team Aprilia 44:15.827
14 Valentin Debise Honda France 44:35.028
15 Balazs Nemeth Wildcard 44:38.868
16 Axel Pons Pepe World Team 44:39.019
17 Vladimir Leonov Viessman Kiefer Racing 43:36.763
18 Imre Toth Aprilia Toth 43:56.557
19 Aitor Rodriguez