BERLIN — Marco Reus scored one goal and set up another as Borussia Dortmund reached the German Cup semifinals with a 3-1 win at Stuttgart that was briefly interrupted by tennis balls on Tuesday.
Reus took last year's beaten finalists' first chance in the fifth minute, converting at the back post when Pierre-Emerick Aubameyang was unable to reach Henrikh Mkhitaryan's cross in the middle.
Lukas Rupp equalized in the 21st with a fine strike from distance after the visitors failed to properly clear the danger from Daniel Didavi.
The game was held up briefly to remove a shower of tennis balls that Dortmund fans had thrown onto the pitch. "Great tennis," read a banner in their block. Another banner saying "football must be more affordable" was displayed as part of an apparent protest against ticket prices.
Aubameyang restored Dortmund's lead in the 31st when he took two touches after collecting Reus' through ball before firing it inside the left post.
Both sides missed chances in a frantic second half, with Stuttgart going close through Filip Kostic after surviving a goalmouth scramble and blocking Mkhitaryan at the other end. Mkhitaryan also missed a good chance in the 88th when he fired over.
"It's very bitter. We didn't play a bad game," said Stuttgart defender Kevin Grosskreutz after facing his hometown club for the first time since leaving via Galatasaray in the summer. "Dortmund were ice-cold in taking their chances."
With Stuttgart pushing hard for the equalizer, Mkhitaryan finally sealed the win on a counterattack in the 89th when Aubameyang sprinted half the length of the pitch and gave the Armenian a simple tap-in.
"We're still coming off a good run," said Stuttgart coach Juergen Kramny, whose side has climbed out of the Bundesliga relegation zone with four straight wins. "To win against Dortmund is never easy. To lose is not abnormal."
Earlier, Werder Bremen came from behind to win 3-1 at 10-man Bayer Leverkusen in the other quarterfinal.
Javier "Chicharito" Hernandez fired the home side ahead with a penalty in the 22nd minute, after Alejandro Galvez fouled Stefan Kiessling.
But Santiago Garcia equalized from close range nine minutes later and Claudio Pizarro converted another penalty three minutes before the break, after Wendell was sent off for bringing down Fin Bartels.
Despite the red card, Leverkusen pushed hard for an equalizer. Felix Wiedwald did well to save from Kevin Kampl in the 80th.
Florian Grillitsch sealed the result on a counterattack two minutes later. Levin Oztunali found Pizarro, who was blocked by Jonathan Tah, only for Grillitsch to stab the ball into the unguarded net. The Bremen midfielder was offside, however.
Bayern Munich and Hertha Berlin visit second-division Bochum and Heidenheim, respectively, in the other quarterfinals Wednesday, with the semifinal draw to take place afterward.
"The semifinal opponents are all the same to me," Dortmund chief executive Hans-Joachim Watzke said. "Bochum would be nice, but I'd rather concentrate on realistic opponents."