Ousmane Dembele #7 of Dortmund celebrates after he scores the 3rd goal during the DFB Cup semi final match between FC Bayern Muenchen and Borussia Dortmund at Allianz Arena on April 26, 2017 in Munich, Germany.
Image credit: Getty Images
Both sides named strong teams for the match as Thomas Tuchel chases his first major piece of silverware with Dortmund and Carlo Ancelotti pursed a domestic double in his first season in Germany.
It was Dortmund who took the lead as some slack defending from Javi Martinez presented Marco Reus with a tap-in that he duly took.
However Bayern responded really well with first Martinez equalising with a powerful header, and then his defensive partner Mats Hummels finishing well to complete the turnaround.
Bayern Munich's German defender Mats Hummels (C) and his team mates celebrate the second goal for their team during the German Cup DFB Pokal semifinal football match between FC Bayern Munich and BVB Borussia Dortmund in Munich, on April 26, 2017.
Image credit: Getty Images
In the second-half Dortmund came out pressing as they desperately looked for the equaliser.
They put Bayern under intense pressure and eventually their patience was rewarded when a deep cross from Dembele found its way to Pierre-Emerick Aubameyang who headed into the empty net.
Minutes later they had taken the lead when Reus slipped the ball out to Dembele and he cut back onto his left before curling a shot into the top corner off the bar.
Dortmund's French midfielder Ousmane Dembele (C) celebrates with teammates after the second goal for Dortmund during the German Cup DFB Pokal semifinal football match between FC Bayern Munich and BVB Borussia Dortmund in Munich, on April 26, 2017.
Image credit: Getty Images
Bayern felt they should have had a penalty after that but instead the referee elected to book Xabi Alonso for what he felt was a dive under pressure from Dembele.
Dortmund will face Eintracht Frankfurt in the final and the match will be played on Saturday 27 May.
Bayern will have to contend themselves with the Bundesliga title, which they lead by eight points with just four games remaining.