That went to pole-sitter and chief rival Antonio Giovinazzi who led every lap of the safety car-interrupted race to claim the win ahead of the RSF-backed Prema driver.
Dennis - who needed the win to take the fight to the wire tomorrow - made the better start of the front row pair diving down the inside of the Italian at Turn 1.
But a stout defence by the Carlin driver, which involving running off the track to maintain position, kept Dennis at bay.
Two further attempts to wrest the lead before the lap was out also failed which allowed the Italian to open up a near one-second lead. Dennis responded next time around whittling that back down to just over half a second.
But that was as close as it got as two safety car periods - one hot on the heels of the other - put paid to any racing for five of the first eight laps.
When the action did resume, it was Giovinazzi who made the stronger restart again leaving Dennis at the mercy of team-mate Felix Rosenqvist who took second at the hairpin.
But the Swede had no answer to Giovinazzi's pace either scuppering what appeared to be a team plan to take over at the front and reverse the Italian back into the clutches of Dennis once more.
With five laps remaining - and second in the standings seemingly out of reach - that plan was ditched as Dennis retook second in order to bolster his chances of ending the season in third.
By that stage Rosenqvist's early pace appeared to be failing while Dennis's had picked up. But despite a late spurt, which reduced the gap to Giovinazzi by the best part of a second, the Italian was never troubled and coasted home to take the win 1.8 seconds clear of Dennis.
Rosenqvist followed practically two seconds in arrears followed by Prema team-mate Maximilian Gunther.
Charles Leclerc, who was in the fight for second in the championship at the start of the race finished down in 11th but remains in contention for third, 5.5 points in arrears of Dennis in the standings ahead of the season finale tomorrow morning.