Borussia Dortmund set up a DFB-Pokal semi-final against Bayern Munich but were made to work for a 3-0 victory over Sportfreunde Lotte at Osnatel Arena.
Dortmund were without star striker Pierre-Emerick Aubameyang due to an adductor injury, though goals from Christian Pulisic, Andre Schurrle and Marcel Schmelzer saw them come out on top of the rearranged and relocated quarter-final clash.
Third-tier Lotte were forced to host the match in Osnabruck after heavy snowfall damaged the pitch at their Frimo Stadion, yet they looked at home in the neutral venue and mounted an impressive start before getting to half-time level.
But Dortmund allayed fears they would follow Werder Bremen and Bayer Leverkusen and be the third Bundesliga scalp for Lotte when Ousmane Dembele - the replacement for the injured Aubameyang - raced away and teed up Pulisic for his third goal in four appearances.
A neat move resulted in Schurrle volleying home a second for Thomas Tuchel's side and Schmelzer added some gloss with an excellent free-kick, getting them back to winning ways after a 2-1 defeat away at fellow Champions League chasers Hertha Berlin on Saturday.
Dortmund are now one match away from a return to the Olympiastadion, but they will have to overcome reigning champions Bayern, who beat them in last season's final, at the Allianz Arena if they are to lift the trophy for a fourth time.
A pair of Matthias Ginter errors led to Hertha's goals at the weekend and the centre-back almost came unstuck again inside two minutes.
Ginter was unable to deal with a long pass into the box under pressure from Bernd Rosinger, but recovered in time to make a clearance after the striker took the loose ball away from Roman Burki.
Lotte's strong start continued unchecked and when Tim Wendel raced onto Jaroslaw Lindner's hopeful pass in the 11th minute, only a strong save from Burki kept the scores level.
Raphael Guerreiro and Gonzalo Castro fired efforts from outside the box narrowly wide as Dortmund began to assert themselves as the superior force, but Lotte made it through to half-time unscathed.
Dortmund had a pair of chances within four minutes of the restart, Lotte goalkeeper Benedikt Fernandez denying Shinji Kagawa from a tight angle before Ginter's goal-bound header was diverted behind by Matthias Rahn.
The breakthrough came in the 57th minute. Dembele launched a rapid break by sprinting from inside his own half before playing in Pulisic, who calmly slotted the ball between the legs of Fernandez.
Dortmund doubled their lead nine minutes later when Guerreiro nodded Kagawa's deep cross down for Schurrle to smash into the back of the net with a first-time finish.
Lotte's confidence was visibly sapped and Dortmund made it three with seven minutes remaining.
Schmelzer's sweetly struck free-kick from 25-yards out proved too much for Fernandez to deal with, the goalkeeper getting his hands to the ball but failing to keep it out of the net.
Tuchel handed Swedish teenage sensation Alexander Isak his Dortmund debut in the closing stages, and their attention will now turn to a Bundesliga clash with Ingolstadt on Friday.