The Italy captain was caught in no-man's land early on, allowing Mats Hummels to poke goalwards only to see Andrea Pirlo scramble the ball off the line.
Polish striker Robert Lewandowski has been linked with a move to the English Premier League and central defender Mats Hummels is routinely mentioned as a potential target for Barcelona.
And when Jakub Blaszczykowski stretched their lead four minutes after the break from a pass by defender Mats Hummels it looked all over a victory for the men in yellow.
Dortmund drew level when defender Hummels cropped up to beat Stuttgart goalkeeper Sven Ulreich on 82 minutes and looked set to have settled the match when Croatia midfielder Ivan Perisic scored after coming off the substitute's bench.
Juergen Klopp's men should have added to their tally but with 13 minutes left Mats Hummels fouled Kevin Volland to concede a penalty and also limped off with a turned ankle, leaving him a possible doubt for next week's final.
Former Bayern defender Mats Hummels headed the hosts ahead in the 10th minute from Nuri Sahin's free-kick, but Mario Gomez leveled 10 minutes before halftime as the striker made up for an earlier miss from Arjen Robben's cross by netting from close range.