Nils Petersen scored a hat-trick to move Freiburg off the bottom of the table with a 4-1 home win against Frankfurt. Mainz had two heroes in its thumping victory, and there were wins for Schalke, Cologne and Gladbach.
Matchday 18 did not start well for Freiburg. Only 38 seconds in to its home game with Frankfurt, visiting defender Marco Russ scored his second of the season, converting at the back post after a free kick from Marc Stendera.
Freiburg struggled to get into the game at home as Frankfurt nearly doubled its lead just after the half an hour mark, but Roman Bürki denied Alex Meier in the box.
The game turned when striker Nils Petersen came off the bench in the second half. Jonathan Schmid volleyed wide from the edge of the area as slowly the home side wrestled back control. After Stefan Aigner's clumsy challenge on Christian Günter in the area, Vladimir Darida slotted home the resulting spot kick on the hour mark.
Three minutes later, substitute Nils Petersen slotted home after a fantastic, three-touch counterattack. Petersen, on loan from Werder Bremen, had not scored in the Bundesliga since April 2014 but he had his second of the afternoon six minutes later - nodding in at the back post.
Petersen's perfect performance was complete when he scrambled home his hat-trick after Kevin Trapp had saved his initial header, sealing a 4-1 win.
Magic men seal win for Mainz
Yunus Malli scored his first of the season after six minutes for Mainz, curling in near the edge of the area after good work by Pablo De Blasis. Lukas Rupp hit the bar for Paderborn and Moritz Stoppelkamp failed to make the most of the rebound. 50 seconds into the second half, the same pair who linked up Mainz's opening goal repeated the feat. A long ball forward was flicked on for Malli who fired into the far corner past Lukas Kruse.
With the snow coming down in Mainz, Paderborn brought on new signing Srjdan Lakic but it proved fruitless as the home side's magic men combined again to make it 3-0, this time Malli turning provider as de Blasis curled into the top corner.
An unmarked Sami Allagui headed in a free kick from Pierre Bengtsson and Johannes Geis added a penalty to complete a 5-0 rout for Kasper Hjulmand's men.
Schalke lucky to win
Schalke started strongly in its 1-0 home win against Hannover. Marco Höger, starting instead of the charismatic Kevin Prince Boateng, coolly slotted home after Christian Fuchs' low cross found its way to the midfielder at the back of the area.
Jan Kirchhoff nearly chested in a second for Schalke, but Ron-Robert Zieler made a reflex save to keep the visitors in the game. Joselu looked destined to equalize for Hannover after going around Fabian Giefer - in for the injured Ralf Fährmann - but a superb last-ditch tackle by captain Benedikt Höwedes denied him.
Tayfun Korkut's team improved in the second half and pushed for an equalizer. Joselu was again denied after his glancing header hit the bar and looked to be bouncing in, only for the spin of the ball to cruelly deny the striker.
Hannover continued to lay siege to Schalke's goalmouth in the final quarter of an hour. Dutch striker Klaas-Jan Huntelaar saw red late on for an unnecessary lunge on Manuel Schmiedebach.
Carnival Cologne hurt Hamburg
In Hamburg, Timo Horn made a smart save to deny home defender Heiko Westermann's header, before returning hero Ivica Olic stroked over at the near post.
At the start of the second half Ashton Götz blazed over for Hamburg. Cologne sensed something was there for them and when Marcel Risse broke free of Heiko Westermann, the winger slotted through the legs of Jaroslav Drobny from a tight angle to give the visitors the lead.
Hamburg pressed hard but, inevitably, were exposed at the back and Risse took advantage on another counterattack in almost a carbon copy of his first. Once again, Joe Zinnbauer's side were left short of reward for their efforts as it went down 2-0.
Gladbach sneak away win
In Stuttgart, Martin Stranzl missed an early chance for Gladbach before Fabian Johnson saw his deflected shot go narrowly wide. Timo Werner forced a smart save out of Yann Sommer, volleying in from the edge of the area after a cross was hung up for him.
Ten minutes into the second half Georg Niedermeier missed when it seemed easier to score - blazing over inside the six-yard box from a corner. That chance was costly, too.
Gladbach counterattacked and great work by Branimir Hrgota allowed Patrick Herrmann to fire through Sven Ulreich. The home side pressed forward and in injury time they had another chance to score, but once again Niedermeier could not take advantage - hammering against the bar from close range.