VR46 rider Luca Marini extended his championship lead after prevailing in a tense battle with Marc VDS' Sam Lowes in the Moto2 Catalan Grand Prix.
Valentino Rossi's half-brother Marini did his chances of a MotoGP step up for 2021 no harm by beating Lowes by 0.981 seconds to open up a 20-point lead in the standings after his main rivals struggled.
Poleman Marini beat the field on the run into Turn 1 off the line ahead of the Speed Up duo of Fabio Di Giannantonio and Jorge Navarro, while Lowes slid down the order.
Lowes recovered to third on lap six of 22 after breezing past Navarro into the first corner and quickly got onto the tail of Di Giannantonio, who wasn't able to trouble Marini's lead.
Marc VDS rider Lowes got out of shape on the brakes into Turn 10 on the seventh tour as he tried to pass Di Giannantonio and ran wide in the process, allowing Marini to break away by over a second.
Lowes got the move on the Speed Up rider done at Turn 1 at the start of the next lap and immediately wiped a few tenths out of Marini's lead.
By lap 10, Lowes had reduced Marini's advantage from nine tenths to just three, but the gap remained fairly steady as the VR46 rider responded to the pressure.
However, Lowes soon upped his pace marginally and found his way through into the lead at the first corner on lap 16.
He couldn't shake the Italian, though, and came under immense pressure in the final laps as Lowes' rear tyre began to fade.
Marini's superior traction allowed him to punch out of the final corner better and he eased past Lowes into Turn 1 with three to go.
The battle came to an end when Lowes (below) ran wide at Turn 6 on the penultimate lap, losing him seven tenths and allowing Marini to ease to the chequered flag for his third win of the 2020 season.
Di Giannantonio took his first Moto2 podium since Aragon last year and the first for Speed Up in 2020, with team-mate Navarro besting American Racing's Joe Roberts in a close battle in fourth.
Enea Bastianini leaped from 10th to fifth on the opening lap on his Italtrans machine, but struggled to make inroads into the podium battle and was a distance sixth in the end.
Bastianini headed the sister VR46 bike of Marco Bezzecchi, who was forced into a recovery ride after an early mistake and drops behind his fellow Italian in the standings - Bezzecchi's gap to Marini now 36 points.
Aron Canet was eighth on his Aspar bike, with Marcos Ramirez (American Racing) and Intact GP's Marcel Schrotter rounding out the top 10.
Jorge Martin's return from COVID-19 ended in retirement owing to technical issues with his Ajo KTM, while Petronas Sprinta's Jack Dixon's hopes of a second-successive top six were dashed by a bike problem early on.
Get unlimited access to the world’s best motorsport journalism with Autosport Plus