(CNN) -- Borussia Dortmund stretched their lead at the top of the Bundesliga to seven points on Saturday night with a 2-1 win over Mainz.
The reigning champions took the lead in the 26th minute through a Jakub Blaszczykowski goal. That's how it stayed until the 74th minute when Mohamed Zidan scored an equalizer to give Mainz hope of a point.
But parity didn't last long as Shinji Kagawa popped up to net the winner two minutes later to hand Dortmund their eighth straight win and tighten their grip on top spot.
Second-placed Bayern Munich crashed to a 2-0 defeat at fifth-placed Bayer Leverkusen.
Stefan Kiessling scored in the 79th minute to give the home side the lead with substitute Karim Bellarabi making sure of all three points in injury time.
Eighth-placed Stuttgart beat Hamburg 4-0 while Hertha Berlin finally ended a seven-game losing sequence with a 1-0 win over Werder Bremen.
Schalke suffered a shock 2-1 defeat at Freiburg -- a result which lifts them off the bottom of the table.
Kaiserslautern replace them after they could only manage a 0-0 draw with Wolfsburg.
Fellow strugglers Augsburg drop to 16th after a 2-2 draw at Hanover.
Third-placed Borussia Moenchengladbach can leapfrog Bayern if they win at Nuremberg on Sunday.