Jean–Eric Vergne took a commanding victory on home soil to take a lights to flag victory over title rival Robert Wickens and Brendon Hartley.
Vergne finished just a second clear of Albert Costa, but the Spaniard was disqualified after the race due to his car being 2kg underweight.
Wickens, who held off Hartley for the final podium position on track, was later promoted to second off it to complete a Carlin one-two while Hartley's rise to third ensured his first podium finish since Monaco.
With Costa's exclusion, Vergne has now narrowed the deficit to Carlin team mate Wickens to 17 points.
Vergne said: “This is a very special weekend for me and it's always an emotional moment when you hear La Marseillaise booming out on home soil. It was a great race after a great qualifying session, and now we'll just have to wait and see what tomorrow brings. Everything's going just fine in the team. We're working well with Robert (Wickens) even if we are fighting it out for the title. That's the advantage of working in a team like Carlin.”
As the lights turned green, Vergne almost effortlessly maintained his advantage as Costa bogged down alongside him as he fought to hold of Hartley and Wickens.
As they entered the Verriere for the first time, Wickens dived the inside of Hartley for third as he desperately fought to keep Vergne insight, while the New Zealander was forced to endure even more first lap misery as Rossi forced his through into fourth.
Vergne began to build a comfortable lead over Costa and Wickens, while Hartley began closing in on Rossi as they began losing touch with the top three.
The Kiwi was noticeably faster than the Fortec car in front, who was troubled by debris in his right side pod from as early as lap one, and eventually passed the American down the inside at Signes and began the difficult task of homing in on Wickens, some five seconds down the road.
Rossi, meanwhile, was demoted a further place to sixth in the same manoeuvre after his fellow compatriot Rosenzweig took full advantage of the 19-year-old running offline.
Daniel Ricciardo, who had dropped to seventh after a slow getaway, was next to find himself behind a woefully uncompetitive Rossi, who began to head a group of five battling frantically to relieve the American of sixth.
The two then became embroiled in a fascinating squabble.
On lap 10, Rossi lost the back end of his Fortec car going in to Bendor and Ricciardo punished the American for his error by reclaiming sixth at Village.
Yet Rossi's response was instantaneous and he dutifully retook sixth at the final corner, Virage du Pont, forcing the ISR driver wide in the process.
The American seemed to be driving on ice as he fought desperately to keep Ricciardo behind him, but the move seemed inevitable and the Australian finally took sixth by passing Rossi down the inside at Signes two laps later.
Ricciardo was now in the groove and despite vigorous defending from Rosenzweig on the entry into Signes, passed the American for fifth with just two minutes remaining.
Behind them was Sergio Canamasas, who drove an incredible recovery drive to take seventh after qualifying a disappointing 16th in qualifying.
In an ill-handling car, Rossi dropped dramatically down the order and would later finish 16th, 55 seconds adrift of race winner Vergne.
He said: “I am bitterly disappointed. The car felt good before the race and when I had taken Hartley at the start I knew I had a good run on Robert and was confident for a podium finish today. Half of a wing from the first lap incident got stuck in my right side pod on lap three, destabilising the whole car for the entire race. I am sure, with the car showing great pace in qualifying and at the start of the race that I could have won today and to not even finish in the points after I fought to defend the whole time, is truly frustrating.”
Up at the front, though, Vergne was untroubled and maintained a consistent gap to Costa, while Wickens failed to make any impression on the Spaniard in front.
What's more, the Canadian found himself looking in his mirrors more often than the action ahead as Hartley, now released of Rossi, became the fastest driver on track and closed to within half a second of the championship leader but Wickens was able to keep the Gravity-Charouz driver at bay.
He said: “I made a mistake in qualifying and I started down the grid. I tried to get past Albert at the start but it was important not to take too many risks, and I got in among the points. Jean-Eric winning today was not ideal, but the key thing is to still be in the lead at the end of the weekend.”
Results - 25 laps: Pos Driver Team/Car Time/Gap 1. Jean-Eric Vergne Carlin 47m47.373s DSQ Albert Costa Epic + 1.037s 2. Robert Wickens Carlin + 4.455s 3. Brendon Hartley Gravity-Charouz + 4.907s 4. Daniel Ricciardo ISR + 23.191s 5. Jake Rosenzweig Mofaz + 27.665s 6. Sergio Canamasas BVM Target + 29.603s 7. Daniil Move P1 + 42.334s 8. Cesar Ramos Fortec + 46.469s 9. Kevin Korjus Tech 1 + 47.568s 10. Nelson Panciatici KMP + 48.225s 11. Oliver Webb Pons + 49.636s 12. Walter Grubmuller P1 + 54.141s 13. Daniel Zampieri BVM Target + 54.469s 14. Nathanael Berthon ISR + 54.988s 15. Andre Negrao Draco + 55.048s 16. Alexander Rossi Fortec + 55.492s 17. Stephane Richelmi Draco + 1m00.054s 18. Daniel McKenzie Comtec + 1m00.605s 19. Arthur Pic Tech 1 + 1m20.767s 20. Daniel de Jong Comtec + 1m24.559s 21. Fairuz Fauzy Mofaz + 1m26.392s 22. Sten Pentus Epic + 1m53.007s Retirements: Jan Charouz Gravity-Charouz 13 laps Anton Nebylitskiy KMP 0 laps Nick Yelloly Pons 0 laps