Bayer Leverkusen maintained the pressure on Borussia Dortmund and Bayern Munich at the top of the Bundesliga with a 1-0 win at Hertha Berlin.
Leverkusen's first win over the capital club in six years was sealed by a Stefan Kiessling strike just shy of the half-hour mark.
Sami Hyypia's men then held firm as Berlin searched for an equaliser, picking up a confidence-boosting win ahead of the midweek Champions League clash with Manchester United.
Eintracht Frankfurt and Schalke shared six goals between them as they drew 3-3 in an entertaining encounter at the Waldstadion.
Johannes Flum gave Schalke the lead with an own goal before Joel Matip added a second.
Flum then scored at the right end before two goals from Joselu turned the game on its head, giving Frankfurt the lead.
Benedikt Howedes had the final say, however, with an equaliser in the 86th minute, increasing Schalke's advantage over seventh-placed Hertha to three points.
Wolfsburg saw their four-match winning streak come to an end as they played out a 1-1 draw at Nurnberg.
Maximilian Arnold gave Wolfsburg the lead after 39 minutes but Daniel Ginczek equalised in the 72nd minute for Nurnberg.
Despite not winning, Wolfsburg were able to improve to 22 points.
Freiburg earned only their second league victory of the season with a 1-0 win at relegation rivals Eintracht Braunschweig.
Visiting goalkeeper Oliver Baumann made a number of key saves before Gelson Fernandes handed Freiburg all three points with the winning goal in the 52nd minute.
The win sees Freiburg move onto 11 points, albeit still inside the relegation zone in 16th place.
Defeat for struggling Braunschweig, meanwhile, sees them drop to the foot of the standings behind Nurnberg.
In the day's remaining game, Halil Altintop scored two goals as Augsburg beat Hoffenheim 2-0 to stabilise themselves in the middle of the Bundesliga table.
Altintop scored his 50th goal in the Bundesliga in the 17th minute and added his second tally of the day six minutes later.