Bayern Munich fell to a maiden competitive defeat under Julian Nagelsmann after being on the receiving end of a smash and grab win for Eintracht Frankfurt at the Allianz Arena.
It was also Bayern’s first Bundesliga home loss in almost two years, while it was Eintracht’s first league away win in Munich since the turn of the millennium.
Leon Goretzka gave a dominant Bayern a deserved lead. But having already seen a number of chances go begging, the champions were punished for missed opportunities when Martin Hinteregger got Eintracht back on level terms from a set piece.
Bayern had further chances to re-take the lead, including Serge Gnabry striking the post. But they also remained vulnerable and had Manuel Neuer to thank for a vital save denying Frankfurt a half-time lead through Almamy Traore.
Kevin Trapp made a point-blank save from Robert Lewandowski shortly before the hour mark, while he also beat away a fierce effort from Gnabry.
Bayern were far from poor but found the Eintracht goalkeeper in stunning form and that provided the platform for the visitors to go on and claim a famous win. Filip Kostic netted what proved to be winner in the final 10 minutes.
There was still time for Goretzka to go close again, but Trapp turned his driven shot wide.
Here is how the Bayern players rated...
Manuel Neuer (GK) - 5/10 - Crucial save in the closing stages of the first half but will feel he should have done better with the second goal.
Niklas Sule (RB) - 6/10 - Looked comfortable out of his natural position, as he has consistently in recent weeks.
Dayot Upamecano (CB) - 4/10 - Caught under the ball when Frankfurt equalised and didn't do enough to close down the second.
Lucas Hernandez (CB) - 6/10 - Commanding in the air
Alphonso Davies (LB) - 6/10 - Made a number of surging runs forward.
Joshua Kimmich (CM) - 6/10 - Dictated play from the base of the midfield.
Leon Goretzka (CM) - 7/10 - Fired Bayern into the lead with a clinical finish. A constant threat and was denied a spectacular goal right at the end.
Thomas Muller (AM ) - 6/10 - Carved out opportunities for his teammates.
Serge Gnabry (RW) - 7/10 - Struck the post in the first half and had a fierce effort saved by Trapp in the second.
Robert Lewandowski (ST) - 5/10 - Assisted Bayern's goal but it wasn't his day in front of goal and he lost the battle with Trapp.
Leroy Sane (LW) - 7/10 - Pressed well from the front and was good on the ball. Unlucky to finish on the losing side.
Jamal Musiala (RW) - 5/10
Eric Maxim Choupo-Moting (LW) - 5/10
Marcel Sabitzer (RB) - N/A