American Nicky Hayden won a thrilling battle with fellow countryman Colin Edwards to snatch victory in the Dutch TT at Assen.
Edwards had led for 24 of the 26 laps on the Camel Yamaha when Hayden took the lead on the Repsol Honda.
But Edwards forced his way back into the lead on the final lap and held the advantage going into the last chicane.
Hayden was forced wide into the gravel trap but Edwards saw his dreams of a first MotoGP win dashed when his bike hit the grass and he was thrown off within sight of the finish line.
Hayden managed to take his second MotoGP win, with Japan's Shinya Nakano in second for Kawasaki and Hayden's Spanish team-mate Dani Pedrosa in third. Edwards was able to remount his machine and cross the line in 13th.
In the 250cc class, victory went to Spain's Jorge Lorenzo on the Fortuna Aprilia.
British rider Bradley Smith finished the 125cc race one place outside scoring a single championship point in 16th.
Winner was Finland's Mika Kallio on the Red Bull KTM.