De ploeg van Thomas Tuchel nam vroeg in de wedstrijd afstand van Stuttgart. Een voorzet van de razendsnelle Aubameyang kwam terecht Marco Reus, die geen fout maakte en de 0-1 op het bord zette. Stuttgart verweerde zich kranig en kwam via Lukas Rupp zelfs op gelijke hoogte.
Aubameyang herstelde de voorsprong binnen tien minuten. De topscorer van de Bundesliga speelde zich goed vrij en ramde de bal buiten het bereik van ex-Dortmund-doelman Mitchell Langerak in de onderhoek.
Na rust bleef het lang spannend in Stuttgart, waar Dortmund de betere kansen had maar pas laat de voorsprong uitbouwde. Henrikh Mkhitaryan maakte in blessuretijd aan alle onzekerheid een eind: 1-3.
Halve finale
Eerder op de avond verzekerde Werder Bremen zich verrassend van een plekje bij de laatste vier. De ploeg won uit bij Bayer Leverkusen. Woensdag worden de laatste twee tickets vergeven.