Champions Bayern Munich crashed 5-1 at Eintracht Frankfurt on Saturday for their first Bundesliga season defeat and 10-man rivals Borussia Dortmund also lost, 3-2 against RB Leipzig.
But there was good news for Union Berlin who ended a winless run spanning 16 matches and three-and-a-half months 3-1 against Borussia Mönchengladbach.
Bayern would have gone top for at least a day with victory in Frankfurt but were 3-0 down after 36 minutes from Omar Marmoush, Eric Dina Ebimbe and Hugo Larsson.
Joshua Kimmich pulled one back in the 43rd but Dina Ebimbe completed a brace in the 50th and Ansgar Knauff got the fifth 10 minutes later as Frankfurt ended a run of four defeats in all competitions.
Frankfurt beat Bayern 5-1 like in 2019, which at the time cost Bayern coach Niko Kovac the job. Frankfurt were coming off a mid-week 2-0 defeat in the German Cup at third-division Saarbrücken, where Bayern had also gone out in the previous round.
Statisticians Opta said that Bayern conceded five goals in the first 60 minutes of a Bundesliga match for the first time since losing 6-0 in Frankfurt in 1975.
"It was a deserved defeat. Our performance was insufficient and that includes me. Frankfurt made the most of it. We were punished for our mistakes," Bayern coach Thomas Tuchel told Sky TV.
Veteran forward Thomas Müller said "to lose 5-1 requires a reaction" and he vowed that "we will hit back."
Frankfurt coach Dino Toppmöller said: "We urged the lads to show a reaction after the four lost games. You could see they were on fire from the start. But we will stay grounded."
Bayern appeared rusty and erratic after last weekend's game against Union was called off due to winter weather while the postponement of the game to January seemed to help Union and their new coach Nenad Bjelica.
Kevin Volland converted a penalty mid-way through the first half, Benedict Hollerback netted in the 50th and substitute Mikkel Kaufmann wrapped up matters in the 75th before Alassane Plea's consolation goal to end of run of 16 games without success in all competitions since a 4-1 league win at Darmstadt on August 26.
"We showed everything that made us strong in the previous years. We were aggressive," Union midfielder Rani Khedira.
Union rose from last place out of the danger zone into 15th, with Mainz now bottom ahead of their Sunday game at third last Cologne.
Bayern remain second, three points behind leaders Bayer Leverkusen who visit third-placed VfB Stuttgart on Sunday.
Dortmund in fifth are slipped four points behind Leipzig and 10 points off the top at the end of a week that also saw them crash out of the German Cup in Stuttgart.
Germany defender Mats Hummels was red carded in the 15th minute for a last-man foul against Lois Openda after a lengthy video review. Hummels was initially booked and Leipzig awarded a penalty but he then saw red upon review because the first contact was just outside the penalty area, and Leipzig were given a free-kick.
Ramy Bensebaini headed into his own net to give Leipzig a 32nd minute lead. Niklas Süle, who came on after Hummels' dismissal to complete a four-man defence again, netted the equalizer at the far post just before intermission.
Christoph Baumgartner in the 54th and Yussuf Poulsen in stoppage time seemed to have decided the match but Leipzig had to sweat it out against fighting hosts in the final minutes after Niclas Füllkrug headed Dortmund's second.
"We tried everything to face up to the challenge after the red card. But we showed the fans that we tried everything until the end," Dortmund winger Julian Brandt said.
Elsewhere, Freiburg won 1-0 at Wolfsburg, Werder Bremen beat Augsburg 2-0, and Heidenheim prevailed 3-2 in a duel of promoted teams against Darmstadt. Hoffenheim beat Bochum 3-1 on Friday.