Bayern München, som vunnit Bundesliga elva säsonger i rad, låg inför lördagens omgång hela 13 poäng bakom serieledaren Bayer Leverkusen.
Under lördagen väntade nykomlingen Heidenheim på bortaplan - och där såg Bayern länge ut att göra jobbet.
Harry Kane gjorde 1-0 i den 38:e minuten, och innan halvtid hade Serge Gnabry utökat till 2-0.
Sedan kom en total kollaps.
Heidenheim reducerade genom Kevin Sessa i den 50:e minuten. Och minuten efter kvitterade Tim Kleindienst till 2-2.
Det såg länge ut att bli slutresultatet, men Kleindienst skulle även skjuta hem tre poäng till sitt Heidenheim.
För i den 79:e minuten höll han sig framme igen och satte 3-2 med sitt andra mål i matchen, och sitt elfte ligamål för säsongen.
Det blev sedermera även slutresultatet.
Då Leverkusen samtidigt besegrade Union Berlin med 1-0 parallellt med Bayerns match, leder Xabi Alonsos mannskap nu Bundesliga med hela 16 poäng.
Startelvor:
Heidenheim: K. Müller - Traoré, Mainka, Gimber, Föhrenbach - Schöppner, Maloney - Dinkci, Beck, Beste - Kleindienst.
Bayern München: Ulreich - Kimmich, Upamecano, Min-Jae, Davies - Laimer, Goretzka - T. Müller, Musiala, Gnabry - Kane.