The Gresini Ducati rider looked poised to duke it out for victory at Le Mans with factory counterpart Bagnaia as the pair emerged with the strongest pace late on.
But a crash for Bagnaia with seven laps remaining gifted Bastianini a win that has thrust him back into championship contention after a tough recent run of races.
Poleman Bagnaia quickly regained third from Rins, while home hero Fabio Quartararo went backwards from fourth on the grid on his Yamaha – the world champion dropping back to eighth.
Quartararo’s afternoon almost ended in disaster at the end of the opening lap when he scythed past LCR Honda’s Takaaki Nakagami into Turn 11.
Nakagami retaliated into the next turn and forced Quartararo out wide, with Marc Marquez on the factory Honda seizing the opportunity to snatch sixth from the pair of them – Quartararo almost coming into contact with the Spaniard.
A mistake for Nakagami at the Dunlop chicane moments later, however, allowed Quartararo back into seventh, and he would get ahead of Marquez on the fourth lap.
At the front, both Bagnaia and Rins were able to get ahead of Bastianini going onto the second lap, though the Suzuki rider’s race would only last until the third lap when he ran off at the fast Turn 2 right-hander and crashed when he bounced back onto the circuit at the Dunlop chicane.
Jack Miller, Ducati Team
Photo by: Gold and Goose / Motorsport Images
Miller and Bagnaia pulled away by around a second at the start of the fourth tour, with Bagnaia taking the lead from his Ducati team-mate into Turn 6 when the Australian ran wide on lap four.
Miller’s pace would continue to fade as Bastianini came through on lap 12 into Turn 8, with the Gresini rider setting off on his chase for his third win of the season.
Behind, Joan Mir on the sole-remaining Suzuki was up into the podium battle and was closing down Aprilia’s Aleix Espargaro for third when he crashed on lap 15 to compound a disastrous weekend for Suzuki in light of its decision to quit MotoGP at the end of 2022.
Bastianini hounded Bagnaia in the latter stages of the race and made his move for the lead into the Dunlop chicane on lap 21 of 27.
But the Gresini rider ran slightly wide into Turn 6 and let Bagnaia back through before it all unravelled for the factory Ducati man.
Bagnaia ran in too hot into Turn 8 and allowed Bastianini into an easy lead, before the poleman crashed out at the penultimate corner just moments later.
This put Bastianini over three seconds clear of Miller as he cruised to the chequered flag to claim another win on the 2021-spec Ducati.
Miller ended up 2.7s adrift in second, while Bagnaia’s crash offered home hero Quartararo and opportunity to salvage a podium at Le Mans.
But Aprilia’s Espargaro put up a formidable defence that allowed him to claim his third-straight podium and shrink Quartararo’s points lead to just four heading to the Italian Grand Prix in two weeks’ time.
Johann Zarco was fifth, 6.8s behind his countryman Quartararo, on his Pramac Ducati after getting the better of Honda’s Marc Marquez – the six-time world champion struggling to sixth.
Luca Marini was a strong ninth on his VR46 Ducati ahead of Aprilia’s Maverick Vinales, with Pol Espargaro unlucky to finish in 11th on his Honda after he was forced to take avoiding action of Oliveira’s crashed motorcycle.
The final points went to VR46 and Gresini rookies Marco Bezzecchi and Fabio Di Giannantonio, LCR’s Alex Marquez and Yamaha’s Franco Morbidelli – who managed to run off track on his way to the grid prior to the race.
Pramac’s Jorge Martin also failed to make the finish, as he tumbled out of 11th in the latter stages.
MotoGP French GP – Race results: