Pecco Bagnaia still has a glimmer of hope in the 2024 MotoGP world championship battle as his Barcelona sprint win, coupled with Ducati team-mate Enea Bastianini beating Jorge Martin to second, brought the gap down to 19 points with just Sunday's Solidarity Grand Prix to go.
Bastianini made a massive contribution to Bagnaia's title bid with his sprint performance, beginning with an amazing start from eighth on the grid that began down the outside line before he swept across to the inside and outbraked the battling Bagnaia and Martin into Turn 1 to briefly lead.
Bagnaia was soon ahead of his team-mate, and left Bastianini and Martin to battle amongst themselves over second - something they'd spend the rest of the 12-lap distance doing.
Martin retook second on lap three, but only for one lap, before Bastianini sliced back past him, the pair brushing boots in the process.
Martin's next attempt looked like it had settled it, as Bastianini lost ground trying to hold on alongside the championship leader as they went deep on the brakes into Turn 1 and ended up being attacked by Martin's Pramac Ducati team-mate Franco Morbidelli.
Alex Marquez (Gresini Ducati) and slow-starting second-place qualifier Aleix Espargaro (Aprilia) then demoted Morbidelli and pressured Bastianini for a while, before Bastianini reeled Martin right back in going into the final laps.
Bastianini dived down the inside of Martin into the downhill Turn 5 right-hander on the last lap and made it a Ducati 1-2.
Though third was a points loss for Martin, his advantage is still such that seven points for ninth place will wrap up the title tomorrow - regardless of what Bagnaia does.
Espargaro took advantage of a late Alex Marquez error to win their battle for fourth ahead of Morbidelli.
Marc Marquez's race was compromised by first-corner contact from Pedro Acosta that ripped the front bodywork from the GasGas-branded Tech3 KTM, ending Acosta's afternoon and leaving Marquez to settle for seventh.
Fabio Quartararo had been as high as sixth for Yamaha early on before slipping back to an eventual 10th behind Marco Bezzecchi's VR46 Ducati and Brad Binder's KTM - charging up from 18th on the grid to ninth.