Marco Russ' 61st-minute strike proved enough to give struggling Frankfurt only their third victory in the league this season.
Frankfurt could even have added a second in injury-time, only for Joselu to see a penalty saved by Bernd Leno.
Having lost for the first time in five matches, Leverkusen remain seven points adrift of Bayern - the last team to win a Bundesliga match at the BayArena back in March - and five ahead of Borussia Dortmund.
In Sunday's other fixture, Schalke climbed back up to sixth with a 2-0 triumph over visiting Freiburg, who have lost five in a row.
An own goal from Nicolas Hofler put Schalke, who qualified for the last 16 of the UEFA Champions League together with Leverkusen in midweek, ahead a minute before half-time.
Jens Keller's men added a second from the penalty spot after 67 minutes, Jefferson Farfan claiming his fifth goal in as many league outings.
Freiburg remain 16th, and are now three points behind Frankfurt.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.