Substitute Timo Werner scored a 56th-minute winner as RB Leipzig claimed their first win over Bayern Munich at the fifth attempt.
Bayern looked set to consolidate their status as runaway Bundesliga leaders when Sandro Wagner headed the opener with just 12 minutes on the clock.
However, a stirring performance by the home side led to Naby Keita levelling just before half-time before Werner`s winner ended Leipzig`s luckless record against their would-be title rivals.
In what appeared to be a blow for the home side, Marcel Sabitzer was forced off injured after just 10 minutes and replaced by Werner, and Leipzig fell behind two minutes later.
James Rodriguez sent in a superb deep cross and Wagner connected firmly to head the ball back across goal and beyond home keeper Peter Gulacsi.
But the home side`s increasingly inevitable leveller came in the 37th minute, when Konrad Laimer sent in Keita who lashed past Sven Ulreich at the second attempt.
Keita missed another great chance on the stroke of half-time when the unmarked Werner would surely have done better, but the striker got his opportunity in the 56th minute as Leipzig grabbed the lead.
This time Keita did find his team-mate who shrugged off the attention of Mats Hummels and raced clear to fire low past Ulreich.
Michy Batshuayi`s sixth goal in seven Bundesliga games helped Borussia Dortmund stretch their unbeaten run to 12 with a narrow 1-0 win over Hannover.
The on-loan Chelsea striker struck the woodwork just 36 seconds into the contest as he burst clear on goal.
However, the Belgian was not to be denied as he pounced in the 24th minute to divert a corner from Andre Schurrle into the net at the near post.
Maximilian Philipp then struck the post in the closing stages as Dortmund kept the pressure on in the race for a top-four position.
Cologne moved off the bottom of the table and dented the European ambitions of Rhine rivals Bayer Leverkusen with a 2-0 win at the Rhine Energie Stadion.
Yuya Osako gave the home side the lead with just nine minutes on the clock and the visitors` task was made harder just past the half-hour mark when Lucas Alario was shown a straight red card.
Simon Zoller struck Cologne`s second in the 69th minute to seal their first win in three games and keep their improbable survival hopes alive.