(CNN) -- Bayern Munich's German title hopes suffered a blow on Saturday as Eintracht Frankfurt scored two late goals to inflict the Bundesliga leaders' first league defeat in six months.
Schalke can now take top spot with victory in Sunday's trip to Hamburg, with Bayer Leverkusen failing to return to the summit on goal difference following a 3-0 defeat at Borussia Dortmund in Saturday's late match.
Bayern, who on Friday were handed the chance to avenge 1999's last-gasp Champions League final defeat by Manchester United in the upcoming quarterfinals, looked on course for an away victory after Miroslav Klose scored after only seven minutes.
The veteran Germany striker controlled Mark van Bommel's on his chest and volleyed into the net, but Frankfurt defied the odds with a victory that lifted the club into eighth place.
Frankfurt were denied first-half goals when Daniel Van Buyten cleared Alexander Meier's header off the line and then goalkeeper Hans-Jorg Butt tipped Benjamin Kohler onto the bar.
Bayern lost Belgium international Van Buyten to a head injury, and Frankfurt finally equalized with three minutes left as substitute Juvhel Tsoumou made an instant, if fortuitous, impact.
Butt was forced to make a rushed clearance after a poor backpass by teenage defender David Alaba, and it rebounded into the net off Tsoumou.
The 17-year-old Alaba was also involved two minutes later when Martin Fenin surged past him and fired in a shot off the post from a tight angle to make it 2-1 and condemn Bayern to only a third defeat in 27 league outings this season.
Borussia Dortmund moved up to fourth place as Bayer Leverkusen crashed to just their second league loss of the campaign, remaining three points adrift of Bayern.
Leverkusen striker Eren Derdiyok hit the post in the first half, but Lucas Barrios bundled in the opener five minutes after the break and then fired his 15th goal of the season just after the hour mark from Mohamed Zidan's pass.
Dimitar Rangelov wrapped it up in the 86th minute to delight the home crowd of 80,000 people.
Werder Bremen moved above Hamburg into fifth place with a 3-2 victory at home to lowly Bochum, with Germany midfielder Torsten Frings scoring the 81st-minute winner as his team came back from 2-1 down.
Seventh-placed Stuttgart bounced back from the midweek Champions League drubbing by Barcelona to beat relegation-threatened Hanover, with Romania international Ciprian Marica scoring in each half.
Second-bottom Freiburg joined Hanover on 23 points with a 1-0 win over Mainz, who were left on 38 points along with Stuttgart and Frankfurt.
Nuremberg moved two points clear of the drop zone after a 0-0 draw with mid-table Hoffenheim.
Champions Wolfsburg can move above Stuttgart with victory in Sunday's home clash with bottom club Hertha Berlin.