Frankfurt besökte London för det första mötet mot West Ham i Europa League-semifinalerna.
Positivt för hemmalaget var att Kurt Zouma var tillbaka i backlinjen, från en kortare skada.
Det var första gången sedan 1973 som Londonlaget tagit sig så långt i en Europaturnering, och fansen hoppades såklart på att få fira ikväll.
Men matchen han knappt blåsas igång innan Frankfurt hade tagit ledningen. Efter svagt försvarsspel från London-laget kunde Ansgar Knauff näta redan vid första anfallet - efter 48 (!) sekunder.
Men efter målet vaknade de rödblå till liv och producerade chanser på löpande band. I 15:e minuten hade Jarrod Bowen ett skott i stolpen, men bara fem minuter senare skulle hans lagkamrat Michail Antonio skjuta in kvitteringsmålet, efter inlägg av mittbacken Kurt Zouma.
Resultatet stod sig sedan till halvtidsvilan, trots att West Ham tryckte på mot det tyska målet.
När spelarna kom tillbaka efter paus var det dock Frankfurt som skulle återta ledningen, genom ett vackert fotbollsmål. Efter en genomskärande passning fick Sow tag på bollen och sköt mot mål, där Areola räddade. Men Kamada höll sig framme och gjorde de vitklädda fansen glada.
Strax efter baklängesmålet gick Manuel Lanzini ut till fördel för Said Benrahma, som kom in med helt ny energi. Efter en minut på plan hade spelaren ett otroligt långskott från utanför straffområdet, som smekte strax ovanför ribban.
På tilläggstid var även Jarrod Bowen centimeter ifrån ett drömmål, när han efter inlägg från Declan Rice cykelsparkade från straffområdet, träffade ribban varpå bollen studsade ner, men bollen hamnade på fel sida mållinjen och West Ham-publiken fick lämna London Stadium med hopp inför returmötet nästa vecka.
Startelvor:
West Ham: Areola - Johnson, Zouma, Dawson, Cresswell - Rice, Soucek, Bowen, Lanzini - Fornals, Antonio.
Frankfurt: Trapp - Sow, Kostic, Hinteregger, Kamada - Rode, Toure, Borré, Lindström - Tuta, Knauff.