Stanislav Manolev gave the visitors the lead early in the second half at Parken but a Daniel Agger penalty secured a draw for Morten Olsen's men.
Bulgaria remain second in the group, four points better off than their opponents whose World Cup hopes are now hanging by a thread.
Both sides were aiming to make it back-to-back wins, with Bulgaria hammering Malta last Friday while the Danes claimed their first victory in the group against the Czech Republic.
Visiting goalkeeper Nikolay Mihailov who made the first save after 22 minutes, punching away a header from Nicolai Stokholm who met Christian Eriksen's corner.
Denmark then saw further efforts from veteran winger Dennis Rommedahl and Eriksen fly past the left post as they piled on the pressure.
However, Bulgaria almost snatched the lead before the interval with their first chance, a powerful left-footed drive from Aleksander Tonev which was fisted away by Stephan Andersen.
And the visitors were celebrating seven minutes into the second half when Tonev pumped a ball into the area from the left which Manolev hammered into the top left corner.
Their lead lasted 11 minutes, though, before the Danes were handed a route back into the match from the spot.
Ilia Milanov was punished for his challenge on Andreas Cornelius and Agger dispatched the resulting penalty into the bottom right corner.
With everything still to play for, Andersen endured a busy spell in which he dealt with a header from Georgi Iliev and another left-footed drive from Tonev.
Simon Kjaer also had the chance to win it for Denmark eight minutes from time but his header was turned away by Mihailov.