The RSF-backed Prema driver qualified second and will start alongside team-mate and pole-winner Felix Rosenqvist.
Dennis held provisional pole for practically the whole of the session only to be outdone by the Swede with just over a minutes to go.
Rosenqvist clinched the top spot - his 10th of the season and the 21st of his four-year F3 career - with a 1m 24.510s lap, bettering Dennis by a mere seven-thousandths of a second.
"I was a bit gutted to lose out after getting so close," said Dennis. "But I can't complain. I'm on the front row with a good chance of claiming the inside line into Turn 1, provided I get a good start.
"Unfortunately traffic was a bit of an issue towards the end which probably cost me pole, but then it might have been the same for Felix and other drivers as well."
The pair's team-mate Lance Stroll heads the second row with Carlin's championship leader Antonio Giovinazzi alongside.
Van Amersfoort's title contender Charles Leclerc - who currently lies second in the standings ahead of Rosenqvist and Dennis - will start from row three.
Qualifying for races two and three takes place later on this afternoon.