Francesco Bagnaia led a Sky VR46 one-two in the Moto2 Thailand Grand Prix to extend his championship lead to 28 points over third-placed Miguel Oliveira.
Bagnaia and Oliveria engaged in battle for much of the 24-lap, before the former was able to break away in the latter stages, while his teammate Luca Marini snatched second on the last lap.
Lorenzo Baldassarri held position from pole on the run into Turn 1 at the start, while Bagnaia and Oliveira moved into the podium places at Turn 3.
Bagnaia took the lead away from Baldassarri at the end of the opening lap, with Oliveira further demoting the Pons rider to third at Turn 5.
The Red Bull KTM Ajo rider quickly reeled Bagnaia in, and usurped the Sky VR46 man at Turn 12 at the end of the third tour, though Bagnaia retaliated with a brave pass at Turn 4.
Oliveria once again reclaimed the lead at Turn 12 at the end of the fifth lap, while both came close to contact exiting Turn 3 after Brad Binder forced teammate Oliveira wide with a daring-but-unsuccessful lunge.
Bagnaia was able to capitalise and take the lead, but a mistake at Turn 12 moments later allowed Oliveira through again, while Binder moved into second.
Binder and Bagnaia traded second over the next two laps after mistakes from both, with Bagnaia making a decisive play for the lead on Oliveira at Turn 4 on lap 12.
Now in front, Bagnaia steadily built his advantage from 0.6s to well over a second in a matter of laps, and remained unchallenged through to the chequered flag for his seventh win of the season.
Marini put on a late charge for the podium following a length battle with Fabio Quartararo, with Marini moving into second when Oliveira ran wide at Turn 3 on the final tour.
Oliveira piled the pressure on Marini across the rest of the lap, but could do nothing to break his resolve and Marini held on to help his teammate to a 28-point buffer in the standings.
Binder shadowed Oliveria home in fourth, with Speed Up's Quartararo completing the top five from Italtrans rider Mattia Pasini.
Iker Lecuona headed Tetsuta Nagashima, whose eighth represents his best-ever finish, with Andrea Locatelli and Simone Corsi rounding out the top 10.
Xavi Vierge came from 20th to 11th, with Remy Gardner heading Joe Roberts and debut points scorers Bo Bendsneyder and Niki Tuuli.
Baldassarri crashed at the first corner on lap nine while trying to recover from a mistake caused by a gearbox issue, while Alex Marquez fell out of podium contention at Turn 5 on the fifth lap.
Marquez's Marc VDS teammate Joan Mir also crashed out after a tangle with Intact GP's Marcel Schrotter at Turn 3 on the opening lap, while Augusto Fernandez – who secured his Moto2 future with Pons for 2019 last week – was another who failed to finish the opening lap.