The RSF-backed Prema driver shot up to third from sixth on the grid at the start but lost out to Van Amersfoort's rookie Charles Leclerc at Turn 1 to spend the remainder of the race circulating in fourth.
Carlin's Antonio Giovinazzi made a similar rapid start to climb from fifth to second before snatching the lead from Prema's poleman at the hairpin.
After that - despite three safety car periods - the lead four maintained position throughout with Italian mastering each restart to prevent the ever-determined Rosenqvist from retaking the the lead.
With less than three minutes to go after the final caution, the race concluded behind the safety car.
"I focused on getting the clutch and the revs right rather than the lights at the start and it paid off for me," said Dennis.
"I got away really quickly to get up to third but Leclerc had the better line into Turn 1 and got me. After that I pulled a gap on the people behind me but wasn't quite quick enough to take the race to the the people in front.
"But P4 from P6 was alright under the circumstances. Hopefully I can get the same sort of start tomorrow to make up for what can only be described as a disappointing end to second qualifying."