Stuttgart 1-3 Borussia Dortmund

(Rupp 20' - Reus 4', Aubameyang 30', Mkhitaryan 89')

Last season's defeated finalists Borussia Dortmund are in the semifinals of the German Cup following a dogged 3-1 win at in-form Stuttgart.

Marco Reus and Pierre-Emerick Aubameyang scored either side of Lukas Rupp's equalizer to give Thomas Tuchel's side a slender lead at the break. Stuttgart were a constant threat and were unfortunate not to earn extra-time. Dortmund missed a handful of chances in the second half, but eventually added a third through Henrikh Mkhitaryan with two minutes to play.

Given Stuttgart's impressive revival under Kramny, Tuchel's side could have hardly wished for a better start, taking the lead after four minutes. Aubameyang picked out Reus from the right-wing and the German attacker timed his run to perfection at the back-post to cushion home his second goal of 2016.

A large chunk of Dortmund's travelling supporters waited until the 18th minute before taking their seat in protest at high ticket pricing at the Mercedes-Benz Arena. It's the latest in a wave of protests from Dortmund supporters and the "Kein Zwanni" movement, which follows action led by Liverpool fans in England this weekend.

Test of character

Rupp levels on 20 minutes for Stuttgart who are in red-hot form in the Bundesliga

After just two minutes of action, they watched on as Stuttgart equalized with a deflected strike from former Paderborn midfielder Rupp. The protests continued five minutes later when the visiting fans hurled tennis balls on to the field, forcing a small stoppage. A minute after the restart, Reus and Henrikh Mkhitaryan combined as Dortmund passed up a chance to take the lead.

But the impressive Reus was at the heart of Dortmund's second in the 30th minute and returned the favor for Aubameyang with an incisive pass. The Gabon international showed great poise and control under pressure before he fired home his 30th goal in 31 competitive games this season.

On 54 minutes, Aubameyang, named Africa's Footballer of the Year, was denied brilliantly by former Dortmund keeper Mitch Langerak, who made his debut for Stuttgart after joining last summer.

A one-touch, clean passing move involving Rupp and Artem Kravets set up Daniel Didavi on the hour mark, but the midfielder's left-footed strike curled wide of Roman Bürki's post. Didavi wasted another scoring opportunity a few minutes later before Christian Gentner passed up a chance from close range.

The end-to-end nature of this game meant either side could have earned the momentum-shifting goal. On 66 minutes, a combination of Mkhitaryan, Reus and Aubameyang couldn't force the ball past Langerak. Mkhitaryan's point-blank header on 74 minutes was blocked by Georg Niedermeier.

Despite Stuttgart throwing the kitchen sink towards Dortmund's goal, the visitors wrapped up a place in the semifinal draw, Mkhitaryan converting on the counterattack following good work from Aubameyang.