Borussia Dortmund were made to work hard for an hour before beating third-tier Sportfreunde Lotte 3-0 in the German Cup on Tuesday to set up a mouth-watering semi-final with holders Bayern Munich.
Christian Pulisic opened the scoring just before the hour, Andre Schuerrle volleyed home the second and Marcel Schmelzer added a late third to end Lotte's remarkable Cup run.
Initially scheduled for last month, the quarter-final had been postponed due to snow and was then moved from Lotte to nearby Osnabrueck as the hosts' pitch was deemed unplayable.
But Lotte's attacking game was unaffected and the giant-killers, who beat Champions League club Bayer Leverkusen in the previous round and also eliminated Werder Bremen, put Dortmund on the backfoot in the opening 20 minutes.
With an audacious pressing game, Lotte missed two early chances to take the lead.
Giving Dortmund almost no space to develop their quick-passing game, they kept the Champions League quarter-finalists away from the box with Gonzalo Castro and Raphael Guerreiro trying their luck for the visitors with long-range efforts.
Lotte gradually ran out of steam in the second half and, unable to keep up with the pace, Dortmund took advantage of the cracks that appeared in the hosts' hard-working backline.
American teenager Christian Pulisic slotted home for the lead in the 57th after Ousmane Dembele charged past several players in a 70-metre sprint before delivering a perfect pass.
Schuerrle doubeled the advantage in the 66th and Schmelzer's free kick killed off the game seven minutes from time.
Eintracht Frankfurt travel to Borussia Moenchengladbach in the other semi-final next month.