Jehan Daruvala took a second win in three FIA Formula 3 races and maintained Prema Racing's 100% record in the series, with a strong performance in the Paul Ricard opener.
Jake Hughes had given HWA a first junior single-seater pole position on Friday, and established an early lead of just under two seconds, which appeared comfortable.
But, after being taken out of the second race of the season in Barcelona, there was always going to be question marks over Hughes's race pace.
Prema's three drivers hit a sweet spot in the first 10 laps, and it took just a couple of tours for Daruvala to usurp Hughes, with an unusual but sensational move at the last corner to outbrake the Brit on lap nine of 20.
Hughes was then attacked by the Prema-run car of Marcus Armstrong, which allowed Robert Shwartzman and Pedro Piquet to close the gap.
With a number of positional swaps behind Daruvala, the key move came on lap 14 of 20 when Hughes made a mistake in the first sector and dropped from the second place he had just snatched from Armstrong all the way to fifth.
Shwartzman used this as a building block to attack his team-mate Armstrong, moving up into second past Armstrong on the Mistral Straight.
The drama was not over, as Hughes and Armstrong then came together at the chicane on the next lap, taking Hughes out of the race and demoting Armstrong to sixth at the finish.
That clash allowed Piquet - who had taken second early on but then was passed by the rapid Prema trio - onto the podium, but he came under pressure from Hitech Grand Prix's Juri Vips in the last two laps while applying pressure to Shwartman himself.
Vips was awarded a five-second penalty in the early stages for leaving the track and gaining an advantage, which was then incredibly cancelled by the stewards.
On the last lap, Shwartman got a great run down the straight and escaped to hold second to the flag, ahead of a scrambling Piquet who kept Vips off the podium.
After Hughes's drama, Euroformula Open runner-up Bent Viscaal gave HWA its best result with fifth ahead of the recovering Armstrong.
A five-car battle for seventh was intense, as drivers attempted to secure reversed-grid pole.
An incredible final three laps had the five side-by-side on occasion, with Jenzer's Yuki Tsunoda coming from 27th to take an amazing seventh.
Campos Racing's Alex Peroni, who had held Vips at bay early on and spent most of the race in seventh, now gets the reversed-grid pole with eighth, while MP Motorsport's Liam Lawson and David Beckmann - who started 22nd - just missed out on the pole.
Devlin DeFrancesco had his best race at this level, but was robbed of eighth with a puncture in the closing stages.
Beckmann's recovery was the only shining light for ART Grand Prix, Christian Lundgaard retiring on the first lap while Max Fewtrell was outside the top 10 when he got a puncture.
Result - 20 laps
|1||Jehan Daruvala||Prema Racing||38m27.360s|
|2||Robert Shwartzman||Prema Racing||2.805s|
|4||Juri Vips||Hitech GP||3.706s|
|6||Marcus Armstrong||Prema Racing||21.146s|
|7||Yuki Tsunoda||Jenzer Motorsport||24.970s|
|8||Alex Peroni||Campos Racing||25.807s|
|9||Liam Lawson||MP Motorsport||26.980s|
|10||David Beckmann||ART Grand Prix||30.123s|
|11||Andreas Estner||Jenzer Motorsport||30.817s|
|13||Yifei Ye||Hitech GP||33.340s|
|14||Richard Verschoor||MP Motorsport||36.720s|
|16||Alessio Deledda||Campos Racing||1m01.610s|
|20||Simo Laaksonen||MP Motorsport||1 Lap|
|21||Devlin Defrancesco||Trident||2 Laps|
|-||Sebastian Fernandez||Campos Racing||Retirement|
|-||Max Fewtrell||ART Grand Prix||Retirement|
|-||Leonardo Pulcini||Hitech GP||Retirement|
|-||Christian Lundgaard||ART Grand Prix||Retirement|
|-||Keyvan Andres||HWA||Not started|