Danilo Petrucci sprang a surprise to hold off Alex Marquez and win the French MotoGP at Le Mans on Sunday.
South Africa's Brad Binder was 12th as home favourite Fabio Quartararo, supported by 5,000 fans allowed into the Bugatti circuit under strict Covid-19 protocols, held onto the championship lead despite struggling from pole to take ninth.
Petrucci, riding for Ducati, won for only the second time from 146 MotoGPs. The 29-year-old was the seventh different winner of the nine races staged so far in this coronavirus-disrupted campaign.
"Unbelievable! I can't understand what I've just done" beamed the Italian who joins KTM's Tech 3 team next season.
"I've waited so long for this win. When the rain came I thought 'it's not possible' but I've always been good in the wet."
Quartararo may have failed in his bid to become the first Frenchman to win in the premier category on home soil since the championship was launched in 1949.
But the 21-year-old Yamaha-SRT rider can take comfort from extending his lead by two points to 10 in the world title battle over Joan Mir, who came in 11th.
The MotoGP crown is there for the taking in the absence of Marc Marquez, the six-time champion who has been hors combat since suffering a fractured arm in an opening-race fall.
As rumours swirled around the track that Marquez may return at Aragon next weekend his younger brother Alex was performing heroics to chase home Petrucci for the factory Honda team's first podium of the season.
The rain which hit the circuit just before the start made life difficult for the riders especially veteran Valentino Rossi, who slithered out of contention on turn three on the opening lap.
Others to crash out were Alex Rins, when fighting for the lead, British duo Bradley Smith and Cal Cathlow, and Quartararo's teammate Franco Morbidelli.
Petrucci mastered the conditions perfectly, and apart from a fleeting moment when he was passed by Andrea Dovizioso with nine laps to go, always looked in command.
With five races remaining Quartararo leads the championship on 115 points, with Mir on 110 and Dovizioso three points adrift in third place.
Results of the French motorcycling Grand Prix at Le Mans on Sunday:
1. Danilo Petrucci (ITA/Ducati) 45min 54.736sec, 2. Alex Marquez (ESP/Honda) at 1.273sec, 3. Pol Espargaro (ESP/KTM) 1.711, 4. Andrea Dovizioso (ITA/Ducati) 3.911, 5. Johann Zarco (FRA/Ducati-Avintia) 4.310, 6. Miguel Oliveira (POR/KTM-Tech3) 4.466, 7. Takaaki Nakagami (JPN-Honda-LCR) 5.921, 8. Stefan Bradl (GER/Honda) 15.597, 9. Fabio Quartararo (FRA/Yamaha-SRT) 16.687, 10. Maverick Vinales (ESP/Yamaha) 16.895, 11. Joan Mir (ESP/Suzuki) 16.980
Standings after 9 of 14 races
1. Fabio Quartararo (FRA) 115 points, 2. Joan Mir (ESP) 105, 3. Andrea Dovizioso (ITA) 97, 4. Maverick Vinales (ESP) 96, 5. Takaaki Nakagami (JPN) 81, 6. Franco Morbidelli (ITA) 77, 7. Jack Miller (AUS) 75, 8. Pol Espargaro (ESP) 73, 9. Miguel Oliveira (POR) 69,10. Danilo Petrucci (ITA) 64
1. Celestino Vietti (ITA/KTM) 37min 37.384sec, 2. Tony Arbolino (ITA/Honda) at 0.142s, 3. Albert Arenas (ESP/KTM) 0.198, 4. Jaume Masia (ESP/Honda) 0.336, 5. Andrea Migno (ITA/KTM) 0.569
Standings after 10 of 15 races
1. Albert Arenas (ESP/KTM) 135 pts, 2. Ai Ogura (JPN/Honda) 129, 3. Celestino Vietti (ITA/KTM) 119, 4. Tony Arbolino (ITA/Honda) 115, 5. John McPhee (GBR/Honda) 98