Enzo Peugeot moved into the French Formula 4 points lead with victory in the first race of the weekend at Ledenon.
It was a lights-to-flag win from pole for Peugeot, with the top five on the grid all holding their starting positions to the finish.
Although Peugeot never looked challenged up front by Kevin Foster, the gap between them shrank from 1.5 seconds to 0.9s in the final third of the race.
Max Reis at times was able to hold a similar gap over Enzo Richer in third place, but over the last two laps the pair closed up and Reis only held on to his podium spot in a photo finish by 0.065s.
Romain Andriolo spent much of the race watching Richer ahead but keeping an eye on pre-race points leader Evan Giltaire behind, with Giltaire having got into sixth after he, Paul Alberto and Yani Stevenheydens passed Andrei Duna on lap three of 16.
More dramatic moments including an opening lap retirement for Adrien Closmenil, a lap four incident between Leonardo Megna and Hiyu Yamakoshi which ended the race for the latter, and a lap seven clash for Karel Schulz and Jason Leung that sent both into retirement. The latter two incidents are under investigation.
Edgar Pierre lost 18th place to a drive-through penalty for overtaking under yellow flag conditions.
Stevenheydens beat Yamakoshi to score a maiden win in the reversed-grid second race.
The latter started from pole and kept the lead as Andrei Duna struggled to move away from second on the grid, but Stevenheydens got away well enough from third to get alongside Yamakoshi a few corners later, just as the safety car was deployed.
Stevenheydens emerged briefly ahead but backed off to slot back in behind his rival while the car of Karel Schulz was retrieved from the gravel trap on the outside of the long first corner. Adrien Closmenil, who started directly behind Schulz, pitted with damage and would eventually also retire.
At the restart, Stevenheydens was less than a tenth of a second behind Yamakoshi as they crossed the start-finish line, and the Royal Automobile Club of Belgium protege would find his way past into the lead later that lap.
Yamakoshi finished 2.14s behind in second place but 4.4s ahead of Giltaire, who had to keep Alberto behind at the end.
Richer took fifth after passing Andriolo, who was then involved in contact with Duna that allowed Foster to slip past him into sixth.
Peugeot also benefitted to take eighth after dropping from 10th to 11th at the start, ultimately finishing ahead of the ADAC-supported trio of Reis, Finn Wiebelhaus and Tom Kalender.
Race 1 (16 laps)
1 Enzo Peugeot 21m57.678s
2 Kevin Foster +0.929s
3 Max Reis +7.120s
4 Enzo Richer +7.185s
5 Romain Andriolo +7.756s
6 Evan Giltaire +8.343s
7 Paul Alberto +16.570s
8 Yani Stevenheydens +19.208s
9 Andrei Duna +21.892s
10 Tom Kalender +23.502s
Fastest lap: Peugeot, 1m21.592s
Race 2 (14 laps)
1 Stevenheydens 21m32.868s
2 Hiyu Yamakoshi +2.140s
3 Giltaire +6.546s
4 Alberto +6.868s
5 Richer +7.966s
6 Foster +13.851s
7 Andriolo +15.358s
8 Peugeot +17.336s
9 Reis +20.121s
10 Finn Wiebelhaus +20.330s
FL: Stevenheydens, 1m21.674s
1 Peugeot 250 2 Giltaire 246 3 Foster 170 4 Andriolo 161 5 Yamakoshi 119 6 Garrett Berry 94 7 Stevenheydens 88 8 Richer 62 9 Edgar Pierre 55 10 Pol Lopez 53