Pedro grabbed a priceless away goal
Frankfurt took the lead in the 26th minute after Luka Jovic expertly headed home his 26th strike of the season from Filip Kostic's cross following a swift counter-attack.
The Blues equalised right on the stroke of half-time after the Bundesliga side failed to clear their lines from a corner, which allowed Ruben Loftus-Cheek to lay off Pedro whose powerful strike into the bottom corner resulted in a crucial away goal.
That strike turned the clash on its head as Maurizio Sarri's side were the much better team in the second half, with David Luiz coming closest to finding a winner through a thunderous free kick which cannoned off the crossbar.
Chelsea had several opportunities to kill the tie against a tiring Frankfurt side, most notably through Luiz and Loftus-Cheek, but ultimately had to settle for a draw.
Key Talking Point
The Blues knew that this would be their most difficult test of the competition, as they were facing a top four Bundesliga side who had already beaten the likes of Shakhtar, Inter and Benfica on route to the last four.
A wall of noise greeted the two sides which made for an incredible atmosphere at the Commerzbank Arena.
Fortunately, they soon found their feet, and Pedro's equaliser not only gave the visitors a huge away goal, but also deflated the home fans.
They started the second half on the front foot, and Sarri clearly smelt blood when he brought Hazard on shortly after the hour mark to find a winner against a Frankfurt side who looked out on their feet.
They couldn't capitalise on their dominance, but they will be confident of finishing the job at Stamford Bridge next week.
Starting XI: Arrizabalaga (6); Azpilicueta (6), Luiz (7), Christensen (6), Emerson (7); Jorginho (7), Kante (8), Loftus-Cheek (8); Pedro (7), Giroud (6), Willian (7).
Substitutes: Hazard (6), Kovacic (6)
STAR MAN - Loftus-Cheek
His second half display in particular was extremely impressive, mainly thanks to some outstanding and aggressive runs as his side tried to find a winner.
His lay-off set Pedro up for the all important goal on the edge of half-time, but his all round play was a huge factor in not allowing the hosts to build any momentum whatsoever.
He was extremely unfortunate to be brought off in the 81st minute, and his performance in an extremely intense atmosphere suggested that he is more than capable of playing every week for a top European side.
Starting XI: Trapp (6); Abraham (6), Hinteregger (5), Falette (6); Da Costa (6), Rode (8), Hasebe (6), Fernandes (6), Kostic (7); Gacinovic (6), Jovic (7).
Substitutes: Paciencia (6).
The Blues travel to Leicester on the final day of the season, hoping to secure their place in the top four in the process.
Frankfurt continue their challenge for a Champions League place when they visit Bayer Leverkusen on Sunday, before hosting Mainz following next week's clash at Stamford Bridge.