Jorge Lorenzo fended off Marc Marquez by 0.130 seconds to win the MotoGP Austrian Grand Prix, while Marquez extended his standings lead to 59 points.
Andrea Dovizioso grabbed the lead on the run into the first corner, but teammate Lorenzo – the only one of the top three to opt for the soft rear tyre, while Dovizioso and Marquez ran the medium and hard – usurped him after the Italian was forced slightly wide by an attacking Marquez at Turn 3.
The Italian lost another place as Suzuki's Alex Rins vied for third sport from 10th on the grid, Dovizioso repelling the Spaniard's advances but losing more crucial time to the leading duo.
Marquez seized the lead from Lorenzo at Turn 3 on the second lap, which began a lengthy spell at the front of the pack.
The Honda rider was able to open up a gap of close to a second at one stage, while Dovizioso shadowed Lorenzo.
The Ducati duo began to reel in Marquez with 17 laps remaining, with the top three covered by just three tenths six tour later.
Lorenzo made an error at Turn 3, but held second and launched a successful rain on Marquez to take the lead into the first corner on the following tour, while Dovizioso had to run wide after outbraking himself.
Marquez retaliated at Turn 3, but Lorenzo scythed past into Turn 9. Dovizioso regrouped after his error, but his pace quickly faded and he was locked into third.
Marquez and Lorenzo swapped the lead several times over the final few laps, with the Ducati rider hitting the front at the start of the last tour, repelling an advance from the Honda man at Turn 3.
Lorenzo held onto the lead across the final lap and took the chequered flag for the third time this season, with Marquez opening up a 59-point lead in the standings, while third-placed Dovizioso slipped a point behind his teammate in fourth.
Cal Crutchlow was top independent runner in fourth on his LCR Honda, with Danilo Petrucci almost four seconds adrift in fifth on his Pramac GP18.
Valentino Rossi recovered from 14th on the grid to take sixth and maintain second in the standings, while Yamaha teammate Maverick Vinales could only muster 12th after a difficult race.
Dani Pedrosa trailed Rossi at the flag, with Rins, Johann Zarco, Alvaro Bautista and Tito Rabat sandwiched between the factory Yamaha duo.
Suzuki's Andrea Iannone was 13th after an early mistake, while Bradley Smith took 14th in KTM's home race. Takaaki Nakagami completed the points on the sister LCR Honda.
Xavier Simeon was the only retirement from the 28-lap encounter, the Avintia rider crashing at Turn 9 in the opening half of the race.