The RSF-backed Prema driver made a lightning getaway to snatch third from second row partner Markus Pommer at the start.
But an attempt to relieve Carlin's Antonio Giovinazzi of second on the dash to turn one came to naught, leaving the Brit with little option other than to settle for third and a much-needed 15 points at the finish.
Team-mate and pole-sitter Felix Rosenqvist secured the lead ahead of Giovinazzi at the start and took two restarts in his stride to claim the win three seconds clear of the Italian.
Dennis, untroubled throughout by Motopark's fourth-placed Pommer, followed on a further 3.8 seconds behind to end his barren run with what his 10th podium finish of the season.
The first of the two safety car periods was triggered by a start line clash involving Prema's Lance Stroll and Van Amersfoort's championship leader Charles Leclerc. The heavy impact put the Canadian out on the spot while Leclerc was able to continue.
But three laps into the resumed race, the Monegasque hit the barriers at the high speed Scheivlak turn at the top of the circuit seemingly as a result of a mechanical failure.
The incident brought out the second safety car while his badly damaged car was removed and he was whisked off to the medical centre for treatment.
His non-finish reduces his lead over Giovinazzi at the head of the championship table to nine and a half points. Dennis remains fourth in the standings some 75 points adrift.