The Bavarians were held for a second successive time in the league as Marco Fabian struck late to secure a deserved point
Arjen Robben gave Carlo Ancelotti’s men an early lead with a crisp, close-range finish before the hosts battled their way back and levelled things up just before the break through Szabolcs Huszti.
Joshua Kimmich then fired home his fourth league goal of the season midway through the second half to restore Bayern’s lead and Frankfurt’s hopes of salvaging something against the Bundesliga leaders appeared to fade when Huszti picked up a second yellow card following an altercation with Renato Sanches.
However, Frankfurt fought back again and 12 minutes from time Marco Fabian struck to secure a wholly deserved point for the hosts.
It marks further disappointment for Bayern after they were held to a 1-1 draw by Cologne before the international break and the champions failed to take advantage of Friday’s 1-1 draw between fellow high-flyers Hertha Berlin and Borussia Dortmund.
Frankfurt, meanwhile, more than played their part in a compelling contest, with Huszti’s well-taken first-half goal the club’s first against Bayern since April 2011.
And. although they were grateful to goalkeeper Lukas Hradecky for keeping them in the game with a string of fine saves in the second half, Niko Kovac’s men were good value for a point.
There was plenty of attacking intent from both sides early on, but it was Bayern that moved in front after just 10 minutes.
Mats Hummels’ searching ball inside his own half sent David Alaba clear down the left and his cross found Robben, who rifled home from a narrow angle.
Undeterred, Frankfurt came back strong and Timothy Chandler’s superb right-foot volley crashed against the post before Hummels blocked Marco Fabian’s follow-up header.
Hummels was then involved at the other end and he should have doubled Bayern’s lead when he somehow failed to hit the target despite being unmarked at a Xabi Alonso corner.
Frankfurt continued to pose a threat, though, and captain Alexander Meier went close with two headers in quick succession.
And they were rewarded two minutes before the break.
Bastian Oczipka’s pass sent Huszti surging into the box and, after the ball bobbled fortuitously back into his path off Jerome Boateng, the Hungary international fired across Manuel Neuer into the bottom right corner.
Kimmich shot narrowly wide from the edge of the box shortly after the re-start, before turning provider moments later by unselfishly squaring the ball to Kingsley Coman, whose low shot cannoned back off the base of the post.
Hradecky then produced two superb saves to foil Robben and Coman before the home defence failed to clear their lines and Hummels drove in a low shot that fell kindly for Kimmich, who found the net from close range to restore Bayern’s lead.
Three minutes later, the home cause suffered a further blow when Huszti was dismissed following a head-to-head altercation with Bayern substitute Sanches.
But Frankfurt again showed great character as they continued to attack a rather shaky looking visiting defence and duly made it 2-2.
Chandler’s cross-shot reached Fabian, who looked suspiciously offside, at the far post and he improvised cleverly to chest the ball past Neuer.
Ancelotti introduced Robert Lewandowski off the bench late on, but even the freescoring Pole was unable to deny the hosts a point.