Bayern Munich reclaimed the top spot in the Bundesliga thanks to lowly Ingolstadt's win against RB Leipzig. Wolfsburg's miseries deepened, if that's even possible, while Marco Reus again equalized right at the last.
Cologne 1 - 1 Borussia Dortmund
(Rudnevs 27' - Reus 89')
Another day, another late Marco Reus equalizer: just as against Real Madrid on Wednesday, Reus came to Dortmund's rescue to salvage a point in a tough away fixture. However, Dortmund missed the chance to capitalize on Hoffenheim and Frankfurt's draw on Friday - a win would have catapulted them back into the Champions League positions.
Cologne, for their part, had broken a goal drought of more than three hours when taking the lead. Artjoms Rudnevs slipped his man to meet a Jonas Hector free kick. Dortmund's high line meant Rudnevs was untouchable after getting free.
Ingolstadt 1 - 0 Leipzig
Leipzig's unbeaten run had to end some day, and it was fellow corporate club Ingolstadt that did the damage. Three big points for relegation-threatened Ingolstadt helped pull them back in reach of teams like Wolfsburg and HSV in the lower midfield.
Ralph Hasenhüttl's Bulls piled on the pressure in the second half against their coach's former club, but ultimately to no avail. Ingolstadt's backs-to-the-wall defensive efforts made them the first team to keep a clean sheet against Leipzig.
However, Emil Forsberg will be kicking himself for missing a cast-iron chance in the dying minutes, carved out by some sumptuous creative work on the wing by Nabi Keita.
Tempers boiled over right at the close, with several cards doled out for a foul and the ensuing fracas - it was Australian Matthew Leckie given his marching orders.
Bayern Munich 5 - 0 Wolfsburg
(Robben 18', Lewandowski 21', 58', Müller 75', Costa 86')
Arjen Robben opened the scoring with a left-footed inswinger to the far corner from the right (patent pending). Minutes later, Wolfsburg were reminded that when it rains, it pours: Robin Knoche did well to block a shot from Ribery, only for the rebound to fall mercilessly at Lewandowski's feet. The Pole's poacher's instincts provided the second, as he redirected a Thomas Müller shot, ensuring it landed in Diego Benaglio's net.
Müller finally broke his duck late on, finding himself in the right place to finish a blocked Robben shot from close in. Off the bench, Douglas Costa completed the fab five with a late pile-driver.
If Wolfsburg are seeking a silver lining, at least this time the five goals didn't all come from Robert Lewandowski in the space of nine minutes.
HSV 1 - 0 Augsburg
Filip Kostic's second Bundesliga goal of the season was enough for HSV in a match that ended 10 against 10. Hamburg remain in the drop zone, but have pulled level with 15th-placed Wolfsburg on 10 points. Their car-crash goal difference of minus 16 keeps them in the bottom three.
Both Lewis Holtby and Dominik Kohr's matches ended early.
Hertha Berlin 0-1 Werder Bremen
Hertha came into Matchday 14 with a perfect home record, but ended up the only home team on Saturday to lose. In a gritty game, Niklas Stark made the critical error, allowing Max Kruse to open the scoring with a fine finish just before the break. Werder had chances to win by more, but also had Jaroslav Drobny to thank for their part in the win. The loss opens up a six-point gap between third-placed Hertha and the top two teams, Bayern and Leipzig. Bremen's first away win of the season sees them distance themselves from the relegation zone.
Freiburg 1 - 0 Darmstadt
(Petersen 86' pen)
Darmstadt quite probably deserved a point in this one, but as it stands, the club slips to the bottom of the table. Substitute Nils Petersen won a penalty - as a defender sought to obstruct him from reaching the ball close in - and then got up and calmly converted into the bottom corner.
The woodwork came to Freiburg's rescue early in the second half for the eighth time this season. No other Bundesliga club has had such regular assistance from an aluminium 12th man. Meanwhile, the three points propel Freiburg to eighth in the table with 19 points from 14 games.
Relive all the action from Saturday as it happened in our live blog below: