Charles Leclerc followed up his second placed finish in the second race of the weekend by winning race three.
The Monegasque rookie started on pole and immediately moved to block Antonio Giovinazzi from the start. The Italian kept the pressure on all race but was unable to take the lead, eventually settling for runner-up spot - his third podium finish in as many races which also gives him the championship lead as the series moves onto Hockenheim in Germany.
As with the first two races, an early safety car played a part in proceedings after Ferrari protege Lance Stroll spun into the pit lane on the first lap.
Although Leclerc was able to build a lead on the restart, a mistake for the Carlin driver allowed Giovinazzi to draw alongside.
A second safety car to clear Pietro Fittipaldi's stricken car set up a dramatic sprint to the finish. Leclerc held on to take the win by less than half a second.
Jake Dennis finished third after passing American Gustavo Menezes on the second restart. Menezes eventually came home fourth after a great start saw him launch from eighth on the grind into the top three.
George Russell took fifth after a hard fought battle with Lotus F1 junior Alexander Albon. He finished sixth, ahead of Markus Pommer.
Brandon Maisano, Callum Ilott and Mikkel Jensen rounded out the top ten.
Image: Dominik Wilde