Antonio Felix da Costa made it back-to-back victories in Formula Renault 3.5 by winning a rain-affected opening race of the weekend at Paul Ricard.
The Red Bull-backed driver recovered from a poor start from third on the grid to stay out of trouble and pick his way back through the field, eventually coming out on top in a head-to-head scrap for the win with wet weather specialist Nick Yelloly.
Da Costa and pole sitter Yelloly both made poor starts - the former when his anti-stall kicked in when he selected second gear, the latter due to too much wheelspin - leaving title rivals Robin Frijns and Jules Bianchi to contest the first corner.
But as the top two fought in the tricky first sector, they were both passed by a charging Andre Negrao, who shot into an early lead.
As Frijns dropped back, Bianchi hunted down Negrao, taking the lead when the Brazilian faltered at the chicane on the Mistral straight on lap eight.
However, both leaders went off a lap later just after Signes, falling behind the clutch of chasing cars and handing the lead to Yelloly.
Da Costa briefly took the lead after Yelloly slowed having cut the chicane on lap 11, but the Briton seized the place back at Turn 1. However, when the Portuguese driver went through for a second time two laps later, he would not be headed again.
Yelloly took a comfortable second place, while Daniil Move charged through the chaos behind to take third, fending off a last corner attack from Bianchi - who was recovering from a second off - in sight of the chequered flag.
Championship leader Frijns, who spent his entire race trying to defend against faster cars, eventually came home seventh.
The other contender in the championship, Sam Bird, had a quiet race from 16th on the grid. However, he did manage to salvage a point, stealing 10th place from Mikhail Aleshin on the final lap.
Results - 21 laps: Pos Driver Team Time/Gap 1. Antonio Felix da Costa Arden Caterham 47m07.036s 2. Nick Yelloly Comtec + 1.958s 3. Daniil Move P1 + 22.690s 4. Jules Bianchi Tech 1 + 23.955s 5. Marco Sorensen Lotus + 26.742s 6. Kevin Magnussen Carlin + 28.581s 7. Robin Frijns Fortec + 34.672s 8. Nico Muller Draco + 35.170s 9. Kevin Korjus Lotus + 36.372s 10. Sam Bird ISR + 38.100s 11. Will Stevens Carlin + 41.306s 12. Mikhail Aleshin RFR + 42.693s 13. Walter Grubmuller P1 + 43.089s 14. Lucas Foresti DAMS + 44.396s 15. Carlos Huertas Fortec + 45.857s 16. Aaro Vainio RFR + 48.632s 17. Vittorio Ghirelli Comtec + 51.172s 18. Zoel Amberg Pons + 54.273s 19. Davide Rigon BVM Target + 59.214s 20. Jake Rosenzweig ISR + 1m06.359s 21. Yann Cunha Pons + 1m09.693s 22. Alexander Rossi Arden Caterham + 1m15.455s 23. Nikolay Martsenko BVM Target + 1 lap Retirements: Andre Negrao Draco 17 laps Daniel Abt Tech 1 3 laps Arthur Pic DAMS 0 laps