Bayern Munich tightened their grip on the Bundesliga title with a 5-2 home thumping of Eintracht Frankfurt.
Milan became the first side to deny Bayern a win at the Allianz Arena when securing a draw in midweek, but Felix Magath's men got back on track on Saturday.
Captain Michael Ballack and Paolo Guerrero were the chief tormentors of the visitors as they both netted twice, while Claudio Pizarro scored a late fifth. Christoph Preuss and Alexander Meier were on target for the visitors, but they were scant consolation.
Werder Bremen moved into second place with a comfortable home win over Borussia Monchengladbach. Miroslav Klose and Ivan Klasnic scored in the first half to knock the stuffing out of the visitors.
Schalke kept their push for a UEFA Champions League place on track as they brushed aside the challenge of Nurnberg thanks to second half goals from Kevin Kuranyi and Lincoln.
Kaiserslautern leapfrogged over Mainz towards the foot of the table with a 2-0 win on their travels. Mainz had no answers as Boubacar Sanogo netted a brace in the first half.
Wolfsburg dented Hannover's push for Europe as they claimed a 2-1 win. Mike Hanke fired the Wolves ahead on nine minutes, but the effort was cancelled out shortly afterwards by Thomas Brdaric.
The visitors seemed set to collect a point until Juan Menseguez popped up with the winner four minutes from time.
Bayer Leverkusen were winners on their travels, as they heaped more misery on basement boys Cologne with a 3-0 victory.
All the damage was done in the final 25 minutes as Dimitar Berbatov, Andrej Voronin and Jacek Kryznowek secured three points for Bayer.
A goal right on half time from Rudiger Kauf boosted Arminia Bielefeld's survival hopes as it lifted them above Borussia Dortmund.
Click below for a match summary:
Arminia Bielefeld v Borussia Dortmund
Bayern Munich v Eintracht Frankfurt
Cologne v Bayer Leverkusen
Mainz v Kaiserslautern
Schalke v Nurnberg
Werder Bremen v Borussia Monchengladbach
Wolfsburg v Hannover 96