Eintracht have scored two or more goals in their last 11 Bundesliga matches, equalling their club record from 1977.
Bayern Munich missed the chance to go eight points clear at the top of the Bundesliga as they lost 2-1 at Eintracht Frankfurt.
Daichi Kamada and Amin Younes gave the hosts a two-goal lead at the break.
Robert Lewandowski tapped in his 26th league goal this term from Leroy Sane's cross to renew hope, but Hansi Flick's side were unable to find an equaliser.
Julian Nagelsmann's RB Leipzig can cut the lead to two points if they win Sunday's game in hand at Hertha Berlin.
The result marks another memorable victory for Eintracht over the 30-time German champions, with last term's 5-1 victory in Frankfurt being the prelude to the departure of Niko Kovac as Bayern boss and Flick taking over.
The result also extends their run to nine wins in their last 10 league matches as they stay fourth in the table.
While Flick led Bayern to victory in the Fifa Club World Cup, his side have underwhelmed since returning to domestic duties and repeated the lax start that contributed to their 3-3 draw against struggling Arminia.
Despite Lewandowksi edging closer to Gerd Muller's 49-year-old record of 40 top-flight goals in Germany, this time Bayern were made to pay for their flat opening.
- Line-upsMatch StatsLive Text
Line-upsFrankfurt
Formation 3-4-2-1
1Trapp35Silva Melo13Hinteregger2Ndicka18Touré20Hasebe17Rode10Kostic15Kamada32Younes9Jovic
- 1Trapp35Silva Melo13Hinteregger2NdickaBooked at 90mins18Touré20Hasebe17RodeBooked at 56minsSubstituted forIlsankerat 68'minutes10Kostic15KamadaSubstituted forZuberat 90+3'minutes32YounesSubstituted forBarkokat 74'minutes9JovicSubstituted forAcheat 68'minutes
Substitutes
- 3Ilsanker7Hrustic11Zuber21Ache22Chandler23Schubert27Barkok30Willems40Bördner
Bayern Munich
Formation 4-2-3-1
1Neuer4Süle17Boateng27Alaba19Davies6Kimmich22Roca10Sané13Choupo-Moting29Coman9Lewandowski
- 1Neuer4Süle17Boateng27Alaba19Davies6Kimmich22RocaSubstituted forGoretzkaat 45'minutes10SanéSubstituted forMartÃnez Aguinagaat 90'minutes13Choupo-MotingSubstituted forMusialaat 82'minutes29ComanSubstituted forHernándezat 82'minutes9Lewandowski
Substitutes
- 8MartÃnez Aguinaga18Goretzka20Sarr21Hernández28Oliveira Dantas39Hoffmann42Musiala47Sieb
Referee:Sascha StegemannMatch StatsHome TeamFrankfurtAway TeamBayern MunichPossessionHome41%Away59%ShotsHome13Away22Shots on TargetHome5Away6CornersHome6Away10FoulsHome12Away7Live TextPost update
Match ends, Eintracht Frankfurt 2, FC Bayern München 1.
90'+5'Full Time
Second Half ends, Eintracht Frankfurt 2, FC Bayern München 1.
90'+3'Substitution
Substitution, Eintracht Frankfurt. Steven Zuber replaces Daichi Kamada.
90'+1'Post update
Attempt missed. Javi MartÃnez (FC Bayern München) header from the centre of the box misses to the left. Assisted by Joshua Kimmich following a set piece situation.
90'+1'Booking
Obite Evan Ndicka (Eintracht Frankfurt) is shown the yellow card for a bad foul.
90'+1'Post update
Leon Goretzka (FC Bayern München) wins a free kick in the attacking half.
90'+1'Post update
Foul by Obite Evan Ndicka (Eintracht Frankfurt).
90'Post update
Corner, Eintracht Frankfurt. Conceded by Lucas Hernández.
90'Post update
Attempt saved. Filip Kostic (Eintracht Frankfurt) left footed shot from the centre of the box is saved in the bottom right corner. Assisted by Daichi Kamada.
90'Substitution
Substitution, FC Bayern München. Javi MartÃnez replaces Leroy Sané.
88'Post update
Attempt missed. Jamal Musiala (FC Bayern München) header from the centre of the box is close, but misses to the right. Assisted by Lucas Hernández.
87'Post update
Attempt blocked. Leon Goretzka (FC Bayern München) right footed shot from outside the box is blocked. Assisted by Jamal Musiala.
86'Post update
Attempt saved. Leroy Sané (FC Bayern München) left footed shot from outside the box is saved in the centre of the goal. Assisted by Joshua Kimmich.
84'Post update
Niklas Süle (FC Bayern München) wins a free kick in the defensive half.
84'Post update
Foul by Ragnar Ache (Eintracht Frankfurt).
84'Post update
Attempt missed. Niklas Süle (FC Bayern München) right footed shot from outside the box misses to the left. Assisted by Leon Goretzka.
82'Substitution
Substitution, FC Bayern München. Jamal Musiala replaces Eric Maxim Choupo-Moting.
82'Substitution
Substitution, FC Bayern München. Lucas Hernández replaces Kingsley Coman.
82'Post update
Foul by Jérôme Boateng (FC Bayern München).
82'Post update
Attempt missed. Jérôme Boateng (FC Bayern München) left footed shot from the right side of the box misses to the right following a corner.
Page 1 of 6rewindpreviousNavigate to the next pagenextNavigate to the last pageforward
Source: bbc.com