Miguel Oliveira took the championship lead with victory in an exciting Moto2 Czech Grand Prix ahead of Luca Marini, while Alex Marquez crashed out.
Luca Marini managed to take the lead off the line from pole position, but could do nothing stop Alex Marquez from muscling his Marc VDS Kalex through at Turn 3.
Behind, Marquez's teammate Joan Mir was involved in a tangle with the Tech3 duo of Bo Bendsneyder and Remy Gardner at Turn 5 as he attempted to make his way into the top group from 12th on the grid.
Francesco Bagnaia took the lead away from Marquez into Turn 3 on the second tour, though Marini would usurp him two laps later, with Miguel Oliveira pouncing on his main title rival for third.
Oliveira found his way through on Marini on lap seven, and countered several attempts by the Italian to regain the lead.
Marini made a move stick on lap eight at Turn 3, with Bagnaia moving ahead of the KTM rider at the same corner on the following tour.
Oliveria fell victim to Marquez's advances on the same lap, but the Marc VDS rider crashed at the final corner.
By lap 10, Bagnaia had retaken the lead from his VR46 stablemate, while fellow VR46 Academy rider Lorenzo Baldassarri's charge from 10th on the grid continued with a move on Oliveira for third a few tours later at the penultimate corner.
Baldassarri took the lead with seven laps remaining, but Oliveira had reclaimed it by the time the race reached its final lap, with Baldassarri's victory hopes fading as the Pons rider's tyres dropped off.
A mistake by Oliveira at Turn 1 allowed Marini to draw alongside for the run to Turn 3, and he successfully executed a pass for the lead.
Oliveira fought back later in the lap, making up for running wide at the Schwantz corner to lead once more at Turn 11.
Marini tried to hand his bike around the outside of Oliveira at the final corner, but Oliveira emerged from the turn ahead and snatched his second win of the year by just 0.070s to take a two-point lead over third-placed Bagnaia in the championship.
Baldassarri shadowed Bagnaia in fourth, with Xavi Vierge completing the top five ahead of Sachsenring winner Brad Binder and Marcel Schrotter.
Jorge Navarro clung onto the leading group for much of the 19 laps, and ended up eighth. Sam Lowes rose from 22nd on the grid to ninth, with Mattia Pasini 10th at the chequered flag.
The final points were taken by Fabio Quartararo, Augusto Fernandez, Iker Lecuona, Andrea Locatelli and Simone Corsi.
A jump start for Romano Fenati saw him hit with a ride-through penalty, with the Italian retiring not long after serving his punishment. Danny Kent, Stefano Manzi, Xavi Cardelus and debutant Alejandro Medina also failed to make the finish.