Competing in the Moto3 class, Bagnaia began from the front row and missed the victory by less than half a second.
The 18-year-old Italian had qualified on the front row for the first time, and he didn't put a wheel wrong throughout a punishingly competitive 24 laps of the 4.185-km Bugatti circuit at the legendary French motor-racing venue.
He started strongly, battled for the lead in the early laps, then played it cool in an eight-bike brawl, saving his strength for the closing battle. With four laps remaining, the Italian attacked again. He moved up to second, then took the lead as they started the last lap.
Bagnaia proved that Mahindra's luck seems to have turned and the hard work paid off. Two more MGP3O riders finished in the points. Second rider Juanfran Guevara was a brave 12th, less than a fortnight after surgery for a broken collarbone; rookie Stefano Manzi claimed his first point at 15th.
The next race is the Italian GP at Mugello, in two weeks.
"This was for sure the best race of my career. I fought a lot with the other two Italian riders, and that was great. In the remaining two laps, I tried to take first position, and I could make it. But it was so difficult, a real fight. I gave my best, and this third place is the result. I'm very happy, because the team and Mahindra have been working a lot. This is a good reward," Bagnaia said.