Maverick Vinales pipped Marc Marquez for his first MotoGP™ win of the season at the Dutch TT as Fabio Quartararo again failed to convert pole position.
Vinales was 11th in the riders' standings with one podium and three retirements heading to Assen, but finally found himself in position to make the most of his Yamaha's sublime speed after Quartararo was frustrated once more.
The rookie retired from pole in Spain and was a distant second in Catalunya despite seeing several rivals involved in a big crash. On the same bike as Vinales, he rued his misfortunate again.
Quartararo was battling a troublesome front wheel throughout, his Yamaha shaking violently, and ultimately could not stick with Vinales and Marquez in a brave ride.
As in Barcelona, Quartararo lost his place at the front of the race before the first corner, with Suzuki duo Alex Rins and Joan Mir profiting.
Meanwhile, Vinales had a slight wobble under contact with Quartararo and looked to have found himself in an early scrap with Marquez.
But Rins went down at Turn 9, skidding off the track, before Mir ran hopelessly wide and allowed Quartararo through, leading out Marquez to set up an almighty tussle.
Quartararo managed to hang on for a time despite an increasingly apparent struggle and even hit back after seeing Marquez storm past to briefly lead with 16 laps remaining.
However, with the front three bunched up, Vinales got under Marquez into second and soon had his sights set on Quartararo, getting through with relative ease.
Marquez smartly cut inside Quartararo, too, but Vinales, showing outstanding pace, could afford to gift the championship leader an advantage with a poor error and still respond.
And Vinales streaked clear from there, avoiding trouble to collect a long-awaited victory.
Marquez at least extended his season lead, but brother Alex was knocked off his Moto2™ perch, seeing a run of three straight wins end with a crash and a breakthrough Augusto Fernandez triumph.
Thomas Luthi nudged six points clear in the standings.
In Moto3™, Tony Arbolino came out on top ahead of Lorenzo Della Porta and Jakub Kornfeil.
1. Maverick Vinales (Monster Energy Yamaha)
2. Marc Marquez (Repsol Honda) +4.854secs
3. Fabio Quartararo (Petronas Yamaha) +9.738s
4. Andrea Dovizioso (Ducati) +14.147s
5. Franco Morbidelli (Petronas Yamaha) +14.467s
6. Danilo Petrucci (Ducati) +14.794s
7. Cal Crutchlow (LCR Honda) +18.361s
8. Joan Mir (Suzuki Ecstar) +24.268s
9. Jack Miller (Pramac Racing) +26.496s
10. Andrea Iannone (Aprilia) +26.997s
1. Marc Marquez (Repsol Honda) 160
2. Andrea Dovizioso (Ducati) 116 (-44)
3. Danilo Petrucci (Ducati) 108 (-52)
4. Alex Rins (Suzuki Ecstar) 101 (-59)
5. Valentino Rossi (Monster Energy Yamaha) 72 (-88)
1. Ducati 224
2. Repsol Honda 179 (-45)
3. Monster Energy Yamaha 137 (-87)
4. Suzuki Ecstar 131 (-93)
5. Petronas Yamaha 112 (-112)