Riding in his 150th MotoGP, the 34-year-old Honda rider hit the front after eight laps and held his position through to the end of the race to become the first Frenchman to take the chequered flag in the top category race since Pierre Monneret in 1954.
In front of the biggest-ever attendance at a MotoGP event and with his mother watching him for the first time ever, Zarco finished 19.907 seconds ahead of six-time world champion Marc Marquez (Ducati) with 20-year-old rookie Fermin Aldeguer (Ducati-Gresini) claiming a first podium in just his sixth race.
There were no points for Alex Marquez, Marc’s younger brother, who went sliding off on the penultimate lap, the last of the day’s six non-finishers, all victims to the filthy weather which made the track so treacherous.
With the rain coming down, there was mayhem from the opening lap as the riders struggled with their slick tyres, Francesco Bagnaia sliding off on turn 4.
The 2022 and 2023 world champion rejoined the race, but ahead of him there was plenty more trouble as pole-sitter Fabio Quartararo, another home favourite, tangled on lap 5 with Brad Binder, sending both of them into the gravel.
A couple of laps later, Binder went off a second time to end his race with Jack Miller, one of just four riders to start on wet tyres, also crashing out.
The early stages saw championship leader Marc Marquez overtake Quartararo and then battle for the lead with his brother.
When they both came into the pits to change bikes and take on wet tyres, Zarco took over the lead, much to the joy of the French crowd, which had packed the Le Mans circuit over the race weekend, with organisers putting the overall attendance as 311,797.
It is the first time in the history of the championship, which dates back to 1949, that weekend attendance has passed 300,000. (AFP)