Jorge Lorenzo closed to within 18 points of Marc Marquez by winning at Phillip Island while Marquez was black-flagged for missing the pit window.
Riders were ordered to pit to change bikes on lap nine or 10 of the shortened 19-lap race as due to the tyre life concerns that had dominated the weekend following the track's resurfacing.
But Marquez stayed out for 11 laps in his first stint, leading to his disqualification a few laps later.
His Honda team-mate Dani Pedrosa also made a pit error, exceeded the speed limit on entry and being ordered to drop a place. He heeded the error by letting Marquez past just before the latter received the black flag.
Yamaha man Lorenzo had led from the start under huge pressure from both Hondas.
A slight mistake on lap one took Marquez wide as well and let Pedrosa slip into the lead, but only for one corner before Lorenzo muscled back through and brought Marquez with him.
Pedrosa was the first of the lead trio to pit at the end of lap nine, but appeared not to slow in time for the revised speed limit line.
Lorenzo came out just in front after his pitstop a lap later, while Marquez inexplicably stayed out.
He finally pitted after lap 11, rejoining right alongside Lorenzo, with minor contact between them shoving Marquez wide and down to third.
After Marquez's black flag, Lorenzo pulled clear of Pedrosa to take a win that revitalised the championship battle.
Valentino Rossi claimed third in a near-photo-finish with Cal Crutchlow and Alvaro Bautista after a fraught battle that ended with all three covered by 0.169 seconds.
Bradley Smith briefly ran fourth after a superb start, before falling back to sixth.
Nicky Hayden was top Ducati in seventh, as Pramac's Andrea Iannone beat the second factory Desmosedici of Andrea Dovizioso to eighth.
Randy de Puniet topped CRT in 10th for Aspar.