Pierre-Emerick Aubameyang claimed his 30th goal of the season on Tuesday to help fire Borussia Dortmund into the German Cup semi-finals with a 3-1 victory at VfB Stuttgart.

Gabon striker Aubameyang and Germany winger Marco Reus, who have provided 45 of Dortmund’s goals in all competitions this season, netted before Henrik Mkhitaryan claimed their late third.

Aubameyang has now scored in each of Dortmund’s last seven German Cup games, dating back to the start of last season, having also netted in Dortmund’s 3-1 Cup final defeat to Wolfsburg last May.

“Auba knows how to take his chances and he works hard on his finishing every day,” said Reus.

“It’s fun to play alongside him.”

Dortmund are in the semi-finals for the third season in a row while spirited Stuttgart had their five-match winning streak, dating back to mid-December, ended.

Pep Guardiola’s Bayern Munich will attempt to join Dortmund in the last four when they play VfL Bochum on Wednesday while minnows Heidenheim host Hertha Berlin.

Dortmund took the lead at Stuttgart’s Mercedes Benz Arena when Reus fired home off the crossbar with just five minutes gone.

Stuttgart fought back and leveled when Lukas Rupp’s shot deflected off Mkhitaryan and into the Dortmund net on 21 minutes to the home fans’ delight.

The visitors regained the lead when Reus set up Aubameyang for his 30th in all competitions, on 31 minutes as Stuttgart failed to cope with Dortmund’s pace.

With time running out, Aubameyang broke clear and pulled Stuttgart goalkeeper Mitchell Langerak off his line to allow Mkhitaryan a simple tap-in on 89 minutes.

Earlier, veteran Claudio Pizarro helped seal Werder Bremen’s 3-1 quarter-final win at ten-man Bayer Leverkusen by playing a key role in their shock victory.

There was a strong Latin American flavor at Leverkusen’s BayArena as Bremen booked their place in April’s semi-finals.

Mexico’s Javier Hernandez put Leverkusen ahead, then Bremen’s Argentinian center-back Santiago Garcia leveled before Brazilian defender Wendell was sent off for Bayer just before the half-time break.

After Wendall’s dismissal, Peru’s 37-year-old striker Pizarro scored Bremen’s second by converting the resulting penalty, then set up their third.

“We did very well defensively and we reacted as a unit after conceding a goal,” beamed Pizarro.

“Now we get to go further in the Cup.”

Leverkusen took the lead when ex-Manchester United forward Hernandez continued his record of scoring in each round of the cup.

It was his 22nd goal for Bayer this season in all competitions.

After Stefan Kiessling was up-ended by Bremen’s Spanish defender Alejandro Galvez in the area, ‘Chicharito’ rifled home the resulting penalty in the 22nd minute.

The lead lasted nine minutes as Bremen’s Argentinian centre-back Santiago Garcia put Werder level by hitting the bottom left-hand corner of Leverkusen’s net to make it 1-1.

Disaster struck for the hosts when Wendell was shown a straight red for hauling down Bartels, who was through on goal, just before the break

The 37-year-old Pizarro, who last weekend became the first foreign player to make 400 Bundesliga appearances, hit his eighth goal of the season.

Pizarro then played a big part in Bremen’s third as his shot was saved by Leverkusen goalkeeper Bernd Leno, but Florian Grillitsch tapped home the rebound on 82 minutes.