Jorge Martin dominated the Moto3 Aragon Grand Prix for his sixth win of the season, while title rival Marco Bezzecchi recovered from a grid penalty to finish second.
Poleman Martin held onto the lead on the run into the first corner off the line, and that was the closest the chasing field ever got to the Gresini rider, as he led by over a second at the end of lap one.
Teammate Fabio Gi Giannantonio led the charge against Martin at the start, while main title rival Bezzecchi recovered from a 12-place grid penalty which dropped him from sixth to 18th to run 12th at the end of the first lap.
Martin's lead opened up to two seconds by the second tour, with Marcos Ramirez muscling his Bester Capital Dubai KTM into second.
By lap four, Martin was already three seconds clear, while Bezzecchi's charge continued as he made his up to fourth, before taking second from Ramirez on the run to the final corner a tour later.
Martin now held a four-second advantage at the front, which he would extend to over seven as the race wore on, while the battle for the podium raged between eight riders.
Bezzecchi found himself shoved off track on the exit of Turn 7 at just over mid distance, dropping him from second to seventh, while Ramirez reclaimed second.
Di Giannantonio seized runner-up spot from Ramirez once more on lap 12, though would once again be chasing Bezzecchi's Prustel GP KTM as he recovered back to second.
Bezzecchi was able to build up a buffer of close to a second in the closing stages, but was soon reeled in by Enea Bastianini, who similarly recovered from a 12-place grid drop.
The Leopard rider piled the pressure on Bezzecchi over the final few laps, but the power of the KTM down the near-kilometre back straight stopped Bastianini from successfully launching any attacks on second.
Martin eased across the line up the road, while Bezzecchi lead Bastianini across the line to complete the podium, with Bezzecchi's recovery ride only allowing Martin to move 13 points clear in the standings.
Di Giannantonio just missed the rostrum in fourth ahead of Ramirez and Tatuski Suzuki, while the top 10 was completed by Albert Arenas, Adam Norrodin, Jaume Masia and John McPhee.
The final points went to Jakub Kornfeil, Andrea Migno, Lorenzo Dalla Porta, Vicente Perez and Nicolo Bulega, with all but Perez recovering from grid penalties.
Estrella Galicia 0,0 rider Aron Canet was a factor in the podium battle early on, but quickly dropped off the pace as he struggled with injury, and eventually pulled out.
Gabriel Rodrigo crashed out of rostrum contention at Turn 3 on the penultimate lap after receiving a slight nudge from Arenas, while Niccolo Antonelli fell the tour prior.