(CNN) -- Bayern Munich smashed seven goals past struggling Hannover to re-establish the German giants' two-point lead in the Bundesliga on Saturday night.
In-form Dutch forward Arjen Robben scored a hat-trick while Croatia striker Ivica Olic and young German Thomas Muller both netted twice each to keep Bayern clear of second-placed Schalke, who earlier won 3-1 at home to Borussia Moenchengladbach.
Bayern go into Wednesday's Champions League semifinal first leg against French side Lyon full of confidence, though the match is in doubt due to the volcanic explosion in Iceland which has halted European air travel.
Robben scored the goal that put Bayern into the last four of Europe's premier club competition with an away goals win over Manchester United, and is in hot domestic scoring form after also finding the net in last weekend's 1-1 draw at Bayer Leverkusen.
The recalled Olic opened the floodgates in the 22nd minute from close range after a cross by fullback Diego Contento, and Robben doubled the lead on the half-hour with a superb solo effort.
Robben was also involved as Muller made it 3-0 just before halftime, and Olic followed up four minutes after the break when the 20-year-old midfielder's shot was only parried by goalkeeper Florian Fromlowitz.
Robben struck again a minute later, while Olic's backheel teed up Muller on 62.
Robben, a big hit at Bayern since signing from Real Madrid in August, wrapped up the romp in the final minute as he again tormented the visiting side, who were left second from bottom of the table.
Schalke moved onto 61 points with three games to play after a routine win over 12th-placed Borussia Moenchengladbach.
Croatian midfielder Ivan Rakitic put the hosts ahead in the eighth minute with the first of his two goals, a fierce effort from just inside the penalty area, but Raul Bobadilla waltzed past goalkeeper Manuel Neuer to level on 16.
Jefferson Farfan gave Schalke the lead again from close range just before halftime after striker Kevin Kuranyi's header was parried by goalkeeper Logan Bailly.
Rakitic made it 3-1 soon after the break with a penalty after Mario Gavranovic was fouled by Dante, while top scorer Kuranyi had an effort ruled out in the 70th minute.
Werder Bremen moved up to third place on goal difference with a 4-2 win at Wolfsburg, whose title defense has long been over.
Eighth-placed Wolfsburg twice led through strikers Edin Dzeko and Grafite, but Peruvian striker Claudio Pizarro made it 2-2 four minutes after halftime, and midfielder Torsten Frings put Bremen ahead with his second goal on 61.
Portuguese striker Hugo Almeida wrapped it up with 15 minutes to play to end Wolfsburg's three-match winning run and leave Bremen with just one defeat in 11 outings.
Bayer Leverkusen also have 54 points after losing 2-1 at Stuttgart, who climbed to sixth thanks to a double from Cacau.
Leverkusen led in the 13th minute when Stefan Reinartz set up striker Stefan Kiessling for his 19th goal this season, but had Tranquillo Barnetta sent off six minutes later for a second booking.
Cacau leveled just before half an hour, and the Brazilian striker -- who plans to leave Stuttgart at the end of the season -- pounced to score the winner with just five minutes left from Pavel Pogrebnyak's deflected pass.
Stuttgart moved above Hamburg, who suffered a 1-0 defeat at 10th-placed Mainz following a 20th-minute winner from Aristide Bance.
Hamburg have won just once in the last seven Bundesliga matches, and their hopes of European football next season may depend on winning the Europa League -- starting with Thursday's semifinal first leg at home to English club Fulham.
Third-bottom Freiburg boosted their hopes of avoiding relegation with a 2-1 win over fellow strugglers Nuremberg, who also have 28 points along with 15th-placed Bochum.
Bochum lost 2-0 at Cologne on Friday night as on-loan Manchester United winger Zoran Tosic scored in each half.