Borussia Dortmund's Pierre-Emerick Aubameyang cancelled out Bayern Munich's opener through Robert Lewandowski to see his team reach DFB Pokal final via a penalty shoot-out after a 1-1 draw.

Bayern Munich missed all four of their penalties, twice through slips on a wet surface, one through Mitch Langerak's save and another as Manuel Neuer's spot-kick hit the crossbar - seeing Dortmund reach the final of the competition thanks to a 2-0 shoot-out win.

Bayern started the better side, setting up with their usual three at the back and keeping the ball well. Philipp Lahm, on the stretch, poked the ball at goal but Langerak held on well.

The home side took the lead just before the half hour mark, ironically from a rare Dortmund foray forward, Shinji Kagawa wasted a great opportunity when the host’s defence looked stretched for the first time, his pass was intercepted and Bayern broke. Lewandowski was fed in, tried to lob the ball over Langerak only to see it come off the post but the Polish striker nonchalantly tucked away the rebound, to haunt his former employers.

The visitors responded with a bit of pressure without really exerting Manuel Neuer. Shortly before half-time, Lewandowski tried an audacious effort after seeing Dortmund’s Australian keeper off his line.

After the break, Marco Reus flashed an effort just wide in. But it was the Bavarians who went closest to scoring soon after as Lewandowski smashed the crossbar. Marcel Schmelzer handled in the area in the aftermath of the rebound but the incident was missed by the officials. Thiago was next to test Langerak as Pep Guardiola’s team built up momentum.

Jürgen Klopp brought on Henrikh Mkhitaryan for Kagawa in an attempt to swing the pendulum Dortmund’s way.

The move worked as the Armenian did well to volley the ball back across goal for Aubameyang to squeeze home despite Neuer thinking he’d kept it out.

The German goalkeeper then had to parry a drilled effort from Mkhitaryan as Dortmund sensed blood. Aubameyang then played in Marco Reus who forced Neuer into a world-class save, low to his left. 

Referee Peter Gagelmann took the game to extra-time after an open period of stoppage time. When the game resumed the clear exhaustion of both sets of players saw the play more stretched.

Substitute Bastian Schweinsteiger then missed a glorious chance when he could not keep his free header down from six yards out in the only chance of the first half of the extended period.

Just a few minutes into the second stage of extra time, Kevin Kampl received his second yellow and was dismissed, leaving his team in the lurch.

Schweinsteiger then had another great headed chance but was denied brilliantly by the out-stretched leg of Langerak.

The game was eventually decided on penalties, with Bayern dramatically missing all of their spot-kicks and Dortmund dispatching two of their three - though Neuer got a strong hand to Mats Hummels' attempt, and so Borussia will meet either Wolfsburg or Arminia Bielefeld in Berlin.