The RSF-backed Prema driver started the race from third on the grid - the first two laps of which were completed behind the safety car due to an earlier shower - and, bar a brief blip, held position all the way to the finish.
As the racing got underway Prema's pole-sitter Felix Rosenqvist, Carlin's Antonio Giovinazzi and Dennis all got away cleanly while behind rookies George Russell and Charles Leclerc clashed, causing fellow newcomer Brandon Maisano to spin and stall.
The incident - which brought the safety car straight back out - dropped Russell to 18th and despatched Leclerc back to the pits for a new front wing.
Come the restart, fellow rookie Alexander Albon, who had climbed to fourth, took advantage of a minor Turn 1 error by Dennis to move into third. But the Racing Steps driver promptly reclaimed the place around the outside, gradually pulling away to open up a comfortable gap.
A third safety car - necessitated when Van Amersfoort's rookie Alessio Lorandi ended up in the gravel at Luffield - promptly cancelled that out but with three laps to go Dennis quickly rebuilt his advantage to take the flag two seconds clear of his old karting rival.
Rosenqvist - who has been stripped of both the pole positions he gained in second qualifying yesterday - took the win just under a second ahead of Giovinazzi, while Albon, in fourth, claimed the rookie win.
Russell and Leclerc recovered to finish eighth and 12th respectively. Rosenqvist's misfortune - the result of a bodywork irregularity - promotes the Monegasque to pole for races two and three.
The transgression drops the Swede to the back of the grid moving the rest of the field up a place.
Dennis moves up to sixth for each of the weekend's remaining races.