Arjen Robben opened the scoring inside four minutes before being substituted after quarter of an hour with an injury to his right knee.
Thomas Muller sealed the victory 12 minutes from time as Pep Guardiola's men clinched their ninth successive win in all competitions.
Bayer Leverkusen also made it through to the last eight as they won 2-1 at Bundesliga strugglers Freiburg.
Robbie Kruse gave the visitors the lead in the very first minute, only to see Matthias Ginter equalise 18 minutes later, before Emre Can saw Sami Hyypia's side through to the next round with a 77th-minute winner.
Elsewhere, two more Bundesliga outfits came through ties against lower-league opposition to seal their berths in the quarter-final draw.
Wolfsburg had to come from behind at home to beat Ingolstadt, who went ahead through Caiuby's 17th-minute strike, but the hosts replied through Naldo midway through the second half and Ivica Olic a minute from time to clinch their passage into the next round.
Joselu's hat-trick inspired Eintracht Frankfurt to a 4-2 home win over Sandhausen.
The Spaniard put his side two up with a 19th-minute strike and a penalty four minutes after the break, only for a Sebastian Rode own goal and a Simon Tuting effort to bring the scores level.
Vaclav Kadlec put Frankfurt ahead for a second time with 18 minutes remaining before Joselu completed his treble in stoppage time.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.