Italian legend Valentino Rossi held off defending champion Marc Marquez to win the Dutch Grand Prix and extend his MotoGP championship lead to 10 points.
The 36-year-old, seeking his 10th World Championship title, had been only a point ahead of Jorge Lorenzo.
Spaniard Marquez, 22, who did not finish the previous two races, passed with seven laps left but Rossi regained the lead three laps from the finish.
Marquez's countryman Lorenzo, winner of the previous four races, was third.
In a pulsating duel, Rossi was clipped by Marquez on the final bend and was forced to cut across the sand around the outside of the track.
But he remained in control to secure the 111th GP victory in all classes of his career, his 85th in MotoGP.
The Moto3 category saw Britain's Danny Kent finish third but increase his lead in the standings to 57 points.
Kent is looking to become the first British rider to win a championship in any class since Barry Sheene in 1977 and has a comfortable lead going into the German GP on 12 July.
Miguel Oliveira of Portugal won the race from Fabio Quartararo of France, while Italian Enea Bastianini, second in the Championship, was sixth.
In Moto2, Frenchman Johann Zarco won his third race from pole to extend his championship advantage to 45 points.
Tito Rabat of Spain was second to retain second place in the standings, while Britain's Sam Lowes, in only his second year in the championship, finished third and is now seven points clear of fourth-placed Swiss Thomas Luethi.
Dutch Grand Prix results:
1. Valentino Rossi (Italy) Yamaha 40:54.037
2. Marc Marquez (Spain) Honda 40:55.279
3. Jorge Lorenzo (Spain) Yamaha 41:08.613
4. Andrea Iannone (Italy) Ducati 41:13.146
5. Pol Espargaro (Spain) Yamaha 41:18.305
6. Cal Crutchlow (Britain) Honda 41:18.410
7. Bradley Smith (Britain) Yamaha 41:18.479
8. Dani Pedrosa (Spain) Honda 41:18.693
9. Aleix Espargaro (Spain) Suzuki 41:20.762
10. Maverick Vinales (Spain) Suzuki 41:21.275
11. Danilo Petrucci (Italy) Ducati 41:23.075
12. Andrea Dovizioso (Italy) Ducati 41:23.455
13. Scott Redding (Britain) Honda 41:40.700
14. Yonny Hernandez (Colombia) Ducati 41:43.342
15. Loris Baz (France) Yamaha Forward 41:46.433
MotoGP standings after race eight of 18:
1. Valentino Rossi (Italy) Yamaha 163
2. Jorge Lorenzo (Spain) Yamaha 153
3. Andrea Iannone (Italy) Ducati 107
4. Marc Marquez (Spain) Honda 89
5. Andrea Dovizioso (Italy) Ducati 87
6. Bradley Smith (Britain) Yamaha 77
7. Cal Crutchlow (Britain) Honda 57
8. Pol Espargaro (Spain) Yamaha 56
9. Maverick Vinales (Spain) Suzuki 52
10. Dani Pedrosa (Spain) Honda 47
11. Danilo Petrucci (Italy) Ducati 44
12. Aleix Espargaro (Spain) Suzuki 38
13. Scott Redding (Britain) Honda 30
14. Yonny Hernandez (Colombia) Ducati 28
15. Hector Barbera (Spain) Ducati 16
Also related to this story