The Manchester City defender, who also scored in the corresponding game at Croke Park in March, headed the visitors in front 24 minutes into a pulsating encounter in Sofia. However, once midfielder Dimitar Telkiyski had levelled five minutes later, the Irish were forced to defend for dear life to retain their five-point lead over the Bulgarians in Group 8.
Giovanni Trapattoni's men, who would have gone to the top of the group ahead of world champions Italy with a win, remain in pole position to claim at least second spot, with Bulgaria, who have played a game fewer, still to go to Cyprus and Italy. The Republic arrived at the Vasil Levski Stadium yet to lose a competitive game under Trapattoni and knowing a positive result on the night would edge them ever closer to South Africa.
For 25 minutes, the 70-year-old Italian must have been thrilled with what he saw as his side not only held their own at a venue where they had never previously tasted victory, but took the game to their hosts. Despite the inclusion of big names Dimitar Berbatov, Martin Petrov and Valeri Bojinov, all of whom missed the 1-1 draw in Dublin through injury, it was the visitors who made the early running.
Winger Stephen Hunt forced the game's first save with only six minutes gone when he met Damien Duff's cross with a downward header at the far post, and Bulgaria keeper Dimitar Ivankov was called upon again seconds later when Caleb Folan sent in a firm shot from the edge of the box. Skipper Robbie Keane was unable to hit the target after spinning smartly to connect with Dunne's header down from an 11th-minute Duff corner and, as Folan caused panic in the heart of the Bulgaria defence, the signs were good for the Irish.
The Hull City striker's physical presence made life intensely difficult for central defenders Igor Tomasic and Ilian Stoyanov, and there was nothing they could do to prevent the visitors from taking the lead with 24 minutes gone after Hunt had been tripped by Stanislav Angelov wide on the left. The winger dusted himself down before curling in a free-kick that Dunne met unopposed and gleefully headed into the net.
Martin Petrov might have levelled within a minute but lifted his shot from a tight angle over Shay Given's crossbar, but the battle had been joined and Ireland were forced to weather a storm from then until the break. The Bulgarians levelled within five minutes of Dunne's opener when Telkiyski capitalised on a misunderstanding between Kevin Kilbane and Sean St Ledger to run on to Ilian Tomasic's long ball and beat the advancing Given comfortably.
With Angelov pulling the strings from central midfield and Berbatov prowling menacingly from deep, the alarm bells were ringing. Dunne had to head a Bojinov shot away and then intercept Angelov's cross just before his Manchester City team-mate could pounce with Bulgaria now in full swing.
Given got his body firmly behind a long-range strike from Radostin Kishishev in injury-time and the whistle came as a welcome relief for Ireland and their fans. It was no surprise when the Bulgarians resumed where they had left off and John O'Shea, playing at right-back to accommodate St Ledger in the middle, endured a challenging start to the second half as Martin Petrov got the bit between his teeth.
However, the Manchester United man twice within quick succession proved up to the task to dispossess the City man before he could do any real damage. The pressure was mounting all the time and it took some heroic defending from Dunne in particular to keep the home side at bay.
However, the Republic had a let-off with 57 minutes gone when Angelov picked out Berbatov in space at the far post with 57 minutes gone, only for the striker to miscontrol and allow Given to step in. Trapattoni's side were marooned inside their own half but they were defending manfully in the face of a concerted assault. However, Bulgaria were struggling to create clear-cut chances and were becoming increasingly desperate, and Stoyanov blasted just over from 25 yards with 20 minutes remaining.
The Irish wall did its job to keep out substitute Blagoy Georgiev's 77th-minute free-kick in a tense finish, with Bulgaria dominating possession but meeting stern resistance all the way to the whistle. Indeed, substitute Aiden McGeady almost snatched victory at the death with a right-foot shot that whistled inches wide.