Match ends, RB Leipzig 2, FC Bayern München 1.
Bundesliga leaders Bayern Munich lost at RB Leipzig, their first defeat in 19 matches in all competitions.
Bayern, 17 points clear at the top of the table, went ahead after only 12 minutes when Sandro Wagner headed in from James Rodriguez's fine cross.
But Leipzig midfielder Naby Keita, who will join Liverpool in a £51m deal in July, equalised late in the first half.
Keita then set up Timo Werner and he drilled a low winner from 15 yards past Bayern goalkeeper Sven Ulreich.
Bayern had won 17 and drawn one of their 18 matches since they last lost, 2-1 away to Borussia Monchengladbach on 25 November.
RB Leipzig, who play Marseille in the quarter-finals of the Europa League, are sixth in Germany's top flight, but only two points behind Eintracht Frankfurt who are fourth and in the last Champions League qualifying spot.
Earlier on Sunday, third-placed Borussia Dortmund beat Hannover 1-0 thanks to a goal from on-loan Chelsea forward Michy Batshuayi.
- 32GulácsiBooked at 82mins
- 44KamplBooked at 34mins
- 17Tué Na Bangna
- 8KeitaBooked at 63minsSubstituted forForsbergat 69'minutes
- 7SabitzerSubstituted forWernerat 10'minutesSubstituted forAugustinat 83'minutes
- 32KimmichSubstituted forFerreira de Souzaat 79'minutes
- 4SüleBooked at 42mins
- 11RodríguezSubstituted forLewandowskiat 72'minutesBooked at 82mins
- 19RudyBooked at 40mins
- 14BernatSubstituted forRibéryat 61'minutesBooked at 63mins
- 8Martínez Aguinaga
- 13Ferreira de Souza
- Marco Fritz
- Shots on Target
Second Half ends, RB Leipzig 2, FC Bayern München 1.
Foul by Mats Hummels (FC Bayern München).
Konrad Laimer (RB Leipzig) wins a free kick in the defensive half.
Corner, FC Bayern München. Conceded by Yussuf Poulsen.
Attempt blocked. Sandro Wagner (FC Bayern München) right footed shot from the centre of the box is blocked. Assisted by Sebastian Rudy.
Corner, FC Bayern München. Conceded by Stefan Ilsanker.
Foul by Robert Lewandowski (FC Bayern München).
Diego Demme (RB Leipzig) wins a free kick in the defensive half.
Corner, FC Bayern München. Conceded by Ibrahima Konaté.
Niklas Süle (FC Bayern München) wins a free kick in the defensive half.
Foul by Jean-Kévin Augustin (RB Leipzig).
Foul by Niklas Süle (FC Bayern München).
Yussuf Poulsen (RB Leipzig) wins a free kick in the defensive half.
Delay over. They are ready to continue.
Video Review: Penalty Kick. Referee decision on field stands.
Delay in match (FC Bayern München). Video Review.
Attempt missed. Mats Hummels (FC Bayern München) header from the centre of the box is high and wide to the left. Assisted by Franck Ribéry with a cross.
Attempt blocked. Robert Lewandowski (FC Bayern München) left footed shot from the right side of the box is blocked.
Franck Ribéry (FC Bayern München) wins a free kick in the attacking half.