City had enjoyed an interval lead thanks to a 19th-minute strike from Sebastian Larsson but Fulham salvaged a point through Dempsey's 53rd-minute header.
Fulham are still one place above the relegation zone and they are now without a win in their last five league games.
The Cottagers should have taken the lead in the fourth minute but a goalbound shot by Aaron Hughes was cleared off the line by Keith Fahey.
Fulham were looking to end a run of four previous games without a win and began in much brighter fashion than their opponents.
Birmingham, boosted by last week's victory over leaders Chelsea, were slow to respond to Fulham's opening charge.
In the 11th minute, Dempsey tried his luck from the edge of the penalty area but his shot flashed past the upright.
But Birmingham took the lead against the run of play with their first threatening attack of the game.
A superb burst by Alexander Hleb saw him surge into the penalty and cross for Larsson to control the ball and fire into the far corner.
Fulham made a change in the 23rd minute when John Pantsil replaced Carlos Salcido at right-back.
It was clearly a tactical change with Birmingham beginning to enjoy a lot of freedom on the left-flank and Blues' opening goal had stunned the home side and their supporters.
In the 31st minute the hosts carved out an opening when Zoltan Gera crossed for Diomansy Kamara to try a spectacular overhead kick.
But the Fulham striker did not connect with the ball sufficiently to threaten Ben Foster in the City goal.
It was the catalyst for a spell of pressure from the home side but they were too reliant on the midfield passing of Danny Murphy and their attacks often petered out.
Birmingham continued to press forward and in the 40th minute Fulham defender Chris Baird had to make a last-ditch header to prevent the lurking Larsson from getting another chance at the far post.
Larsson was proving to be a real handful for the home side who were struggling to make an impact on the game.
Fulham's attacking edge had clearly been blunted with the loss of injured trio Andrew Johnson, Bobby Zamora and Mousa Dembele and they failed to get back on level terms before the break.
Fulham started brightly in the second-half but they had little joy in front of goal with Kamara thwarted at the far post in the 50th minute.
But there was an urgency about Fulham's game and for once Birmingham's defence was having to work hard.
The renewed pressure paid off in the 53rd minute when Birmingham failed to clear a corner and Dempsey climbed highest at the far post to equalise with a simple header.
Three minutes later Gera's shot on the turn on the edge of the penalty area was easily saved by Foster.
Fulham were now in the ascendancy and the afternoon worsened for City when they lost Hleb through injury in the 61st minute to be replaced by Nikola Zigic.
City had the chance to reclaim the lead moments later but a far-post header from Roger Johnson was well wide of the target.
In the 69th minute, another header from Dempsey was clutched easily by Foster but Fulham's pressure was mounting.
Fulham escaped another defeat thanks to the woodwork in the 74th minute when a header from Johnson rattled the bar.
Fulham substitute Eddie Johnson then wasted a great chance to win the game for the home side when he burst clear of the City defence.
But the Fulham striker could only fired his angled drive into the side-netting.