Australia's Jack Miller secured his first MotoGP victory in a rain-affected race at Assen in the Netherlands.
The 21-year-old Marc VDS rider, a 750-1 outsider with bookmakers, coped best with the slippery conditions.
Honda rider Marc Marquez was second to extend his overall lead, with Britain's Scott Redding claiming the final place on the podium.
There were also first-time winners in Moto2 and Moto3 - Takaaki Nakagami and Francesco Bagnaia respectively.
Miller's victory made him the first Australian winner in MotoGP since Casey Stoner at Phillip Island in 2012, and the first rider on a non-factory bike to win since Toni Elias in Portugal a decade ago.
The treacherous conditions meant the race was red-flagged after 14 laps and restarted with only 12 remaining.
At that stage, Andrea Dovizioso was leading from Danilo Petrucci and nine-time world champion Valentino Rossi but all three soon crashed out.
Miller took advantage of the mayhem, passing Marquez with eight laps to go and maintaining a comfortable lead to the chequered flag.
He said: "It was nice just to stay on the bike.
"It was a wet-weather win, but it is great to have it under my belt and let people know that I can ride a bike."
Marquez moved 24 points ahead of Jorge Lorenzo, who took one point by finishing 10th.
"This race was all about getting points," said the Spaniard. "Second felt like a victory in these tricky conditions - 20 points will be important in the championship."
The next race takes place at Sachsenring in Germany on 17 July.
Assen MotoGP result:
1. Jack Miller (Aus) Marc VDS 22 mins 17.447 secs
2. Marc Marquez (Spa) Honda +1.991
3. Scott Redding (GB) Pramac +5.906
4. Pol Espargaro (Spa) Yamaha +9.812
5. Andrea Iannone (Ita) Ducati +17.835
6. Hector Barbera (Spa) Avintia +18.692
7. Eugene Laverty (Ire) Aspar +22.605
8. Stefan Bradl (Ger) Aprilia +23.603
9. Maverick Vinales (Spa) Suzuki +26.148
10. Jorge Lorenzo (Spa) Yamaha +27.604
Overall standings (after race 8 of 18):
1. Marc Marquez (Spa) Honda 145 points
2. Jorge Lorenzo (Spa) Yamaha 121
3. Valentino Rossi (Ita) Yamaha 103
4. Dani Pedrosa (Spa) Honda 86
5. Maverick Vinales (Spa) Suzuki 79
6. Pol Espargaro (Spa) Yamaha 72
7. Hector Barbera (Spa) Avintia 58
8. Andrea Iannone (Ita) Ducati 52
9. Aleix Espargaro (Spa) Suzuki 49
10. Eugene Laverty (Ire) Aspar 48