Miguel Oliveira won a delayed Indonesian Grand Prix on Sunday as he held off a late surge from world champion Fabio Quartararo.
Quartararo had qualified in pole position but dropped to fifth in the difficult conditions as Oliveira built what proved to be an unassailable lead.
Champion Quartararo was on a run of four consecutive races without a podium finish but produced a brilliant ride in the second half of the race to take second ahead of Johann Zarco.
Jack Miller, who led in the early stages, finished fourth and Alex Rins fifth, with Enea Bastianini, winner in Qatar's season opener, down in 12th.
Six-time world champion Marc Marquez was forced to miss the race after a heavy crash during the warm-up left him with concussion.
The action got underway after more than an hour's delay, during which torrential rain fell and lightning struck the edge of the track, with the race shortened to 20 laps.
Miller and Oliveira pulled away from Quartararo after adjusting more quickly to the conditions and the latter surged into the lead as his pace became too much for the Australian.
Jorge Martin crashed at Turn 1 after catching a puddle with his front wheel, highlighting just how treacherous the track remained even after the rain had ceased and the surface began to dry.
Quartararo overtook Rins with eight laps to go before passing Miller and Zarco in a gripping battle for a podium place, the French rider eventually pulling away.
There was not enough time to catch Oliveira, though, the Red Bull KTM man claiming his fourth career win in exemplary fashion.
TOP 10
1. Miguel OIiveira (Red Bull KTM)
2. Fabio Quartararo (Monster Energy Yamaha) +2.205 seconds
3. Johann Zarco (Pramac Racing) +3.158s
4. Jack Miller (Ducati) +5.663s
5. Alex Rins (Suzuki Ecstar) +7.044s
6. Joan Mir (Suzuki Ecstar) +7.832s
7. Franco Morbidelli (Monster Energy Yamaha) +21.115s
8. Brad Binder (Red Bull KTM) +32.413s
9. Aleix Espargaro (Aprilia) +32.586s
10. Darryn Binder (RNF Racing) +32.901s
CHAMPIONSHIP STANDINGS
Riders
1. Enea Bastianini (Gresini Racing) 30
2. Brad Binder (Red Bull KTM) 28
3. Fabio Quartararo (Monster Energy Yamaha) 27
4. Miguel OIiveira (Red Bull KTM) 25
5. Johann Zarco (Pramac Racing) 24
Teams
1. Red Bull KTM 53
2. Monster Energy Yamaha 41
3. Suzuki Ecstar 40
4. Repsol Honda 31
5. Gresini Racing 30