Long-serving Dunne earned Ian Holloway’s side a deserved three points when he headed home in the 51st minute.
It capped an impressive display by Millwall, who tasted victory for the second time in three games and now remain in the drop zone on goal difference alone as they lie level on points with 21st-placed Brighton.
While Millwall have found some form, Gary Rowett’s Birmingham struggled to really get into their stride as their poor run continued.
Blues have not won since beating Wigan back on January 10 and have now taken just four points from their last five games.
Millwall, who had been beaten 3-1 at home by Huddersfield in their previous match, made the kind of bright start that belied their lowly position in the table.
Diego Fabbrini stood out and the Italian forward had an excellent chance to make Millwall’s early pressure pay in the 13th minute.
Lee Martin whipped in an accurate right-wing cross that Fabbrini tried to acrobatically volley towards goal.
He did get his overhead shot on target but his effort lacked the power to really trouble the Birmingham goalkeeper Darren Randolph.
With Blues struggling to find any kind of cohesion in their play, Millwall continued to dominate and City had to rely on the bar to save them after 16 minutes.
Millwall’s giant striker Stefan Maierhofer released Martyn Woolford who lobbed the ball over Randolph only to see his shot hit the bar.
Birmingham continued to ride their luck and in the 21st minute Randolph came to their rescue – diving low to his left to do well to hold on to a fierce goalbound drive from Daniel Harding.
That third escape finally sparked Birmingham into life and only the fingertips of Millwall goalkeeper David Forde prevented them breaking the deadlock 11 minutes before half-time.
Clayton Donaldson used his power to bustle his way on to a through ball from Jonathan Grounds and tried to curl home his shot from 15 yards, but Republic of Ireland international Forde spectacularly tipped his shot around the post at full stretch.
Forde frustrated Birmingham again in the 42nd minute when he pounced to hold on to a long range drive from David Davis before Donaldson headed a David Cotterill cross wide from six yards at the start of the second half – and that was a crucial miss.
Birmingham’s defence failed to deal with the ball after it was swung into a packed goalmouth and Dunne, who has made almost 400 appearances for the club, reacted fastest to nod home the loose ball from six yards.
Millwall would deservedly have doubled their advantage six minutes later only for Martin to be denied by another smart save by the busy Randolph.
Birmingham’s frustrating evening was then perfectly summed up in the 73rd minute when Cotterill’s right-wing corner was met by the head of Jonathan Grounds, whose header crashed off the bar before being cleared to safety by a well drilled Millwall defence.