The visitors started the better of the two sides and an Osvaldo header that landed just wide of the post was the closest of the early chances for both sides.
Bulgaria settled into the match midway through the first period and it was the hosts who took the lead in the 30th minute when Stanislav Manolev unleashed a fierce shot from 35 yards that flew past Gianluigi Buffon.
However, Osvaldo pulled a goal back for Italy seven minutes later with a powerful finish from close range after good work from Claudio Marchisio.
The Italians were ahead before half-time, with Osvaldo grabbing his second of the match courtesy of a deflected header.
Bulgaria were on the back foot in the opening stages of the second period but the home side managed to surprise Italy by finding an equaliser in the 66th minute.
A cross from Ilijan Micanski found Georgi Milanov on the edge of the area and the midfielder's powerful volley sailed past a helpless Buffon to get the hosts back on level terms.
Andrea Pirlo threatened to snatch victory for Italy in the final moments but the midfielder's curling effort was just off target as Bulgaria held on for a point.