125cc championship leader Andrea Dovizioso saw his Portuguese Grand Prix hopes disappear when he suffered a rear tyre puncture in today's race, and was unable to reach the finish after running out of air on the tenth lap.

The young Italian had opened up a clear lead, but was struck by an ironic twist of fate after running over debris left by his team-mate Simone Corsi, who had crashed out four laps earlier after a clash with Casey Stoner, which also forced the Australian to retire with a broken exhaust.

Hector Barber? took advantage of his rivals' misfortune and charged for victory, chased all the way to the line by Mika Kallio. The Finn took the lead on the penultimate lap but Barber? saved his best until last, recovering first place just a couple of corners later and leading to the chequered flag, closing down Dovizioso's advantage at the top to 20 points.

Further back, Jorge Lorenzo took his third podium in a row after ambushing Pablo Nieto for third place at the line.

125cc top ten - Portuguese Grand Prix:

1. Barbera (Aprilia)
2. Kallio (KTM) +0.151secs
3. Lorenzo (Derbi) +8.824secs
4. Nieto (Aprilia) +8.888secs
5. Bautista (Aprilia) +9.666secs
6. Simoncelli (Aprilia) +10.347secs
7. Talmacsi (Malaguti) +11.919secs
8. Pesek (Honda) +11.962secs
9. Locatelli (Aprilia) +19.186secs
10. Perugini (Gilera) +19.548secs