With Schalke losing 3-0 at Nurnberg on Saturday, Frankfurt could have moved three points clear of the men from Gelsenkirchen in the battle for fourth place had they beaten Stuttgart on Sunday afternoon.
But the poor recent form which had seen Frankfurt earn just three points from their previous five matches struck again.
Stefan Aigner gave Frankfurt the lead after 17 minutes - their first goal in six weeks - but Vedad Ibisevic equalised with a penalty in the 48th minute and Georg Niedermeier gave Stuttgart the victory with his header 19 minutes from time.
Frankfurt remain fourth on goal difference, ahead of Schalke.
Borussia Monchengladbach climbed two places to seventh, just one point behind Frankfurt and Schalke, thanks to a 1-0 home win over Hannover.
The only goal came in the 36th minute from Luuk De Jong, who clipped a close-range finish beyond Ron-Robert Zieler after taking on a smart short-range pass from Patrick Herrmann.
Phillipp Wollscheid's own goal ensured Bayern Munich gained a measure of revenge for a loss to Bayer Leverkusen earlier this season as they edged to a 2-1 win on Sunday.
Leverkusen are the only club to beat the Bundesliga leaders this season after winning 2-1 in Munich in October, but they fell behind on Saturday evening when Mario Gomez poked home in the 37th minute.
Simon Rolfes headed in at the far post from a corner in the 75th minute to give Leverkusen hope of coming away with a point but Wollscheid unwittingly diverted Bastian Schweinsteiger's free-kick into his own goal three minutes from time.
It was perhaps a touch cruel on the hosts as Bayern maintained their 20-point gap at the top of the standings over reigning champions Borussia Dortmund, who thumped Freiburg 5-1.
The mid-table side took the lead in the 28th minute through Jonathan Schmid although two goals from Robert Lewandowski either side of Nuri Sahin's strike put the Westphalians 3-1 ahead before the interval.
Turkey international Sahin got his second of the game in the 72nd minute before substitute Leonardo Bittencourt completed the rout in the 78th minute - just a minute after being introduced.
Nuremberg piled more misery on Schalke with a convincing 3-0 win at the Frankenstadion.
After being eliminated from the Champions League by Galatasaray in midweek, Schalke saw their bid for a top-four Bundesliga finish suffer a setback.
Markus Feulner put Nuremberg ahead before half-time with further goals from Alexander Esswein and Mike Frantz earning Michael Wiesinger's side all three points, moving them 10 points clear of the drop zone.
Augsburg boosted their survival hopes with a 1-0 victory in Hamburg which reduced the gap to 15th-placed Stuttgart to just five points and dented the home team's hopes of playing in Europe next season.
Jan-Ingwer Callsen-Bracker scored the only goal of the game in the eighth minute, while Hamburg's woes were compounded by a red card shown to Maximilian Beister late on.
Werder Bremen's troubled season continued as they were held to a 2-2 draw at home by bottom club Greuther Furth whose new coach Frank Kramer had an encouraging first game in charge.
Aaron Hunt scored two penalties for Bremen in-between strikes from Stephan Furstner and Thanos Petsos for Furth, who were playing under new coach Frank Kramer for the first time.
Hoffenheim are nine points adrift of safety after a goalless draw at home to Mainz.
On Friday, Ivica Olic netted a 51st-minute equaliser to rescue a 1-1 draw for Wolfsburg at home to Fortuna Dusseldorf.
Sunday's Bundesliga Results
Saturday's Bundesliga Results
Friday's Bundesliga Result