Bas Dost scored to cancel out Florian Kainz's penalty as Eintracht Frankfurt salvaged a 1-1 draw at Cologne - a result which spared pride, but not their hopes of qualifying for European competition next season.
Eintracht started brightly in Cologne and could have taken an early lead when Andre Silva latched onto Elvis Rexhbecaj's miscued pass, but after squaring for Dost the Portuguese could only watch on as the Dutchman fired wide. Despite having played 52 games in all competitions this season, Frankfurt were only missing two players through injury at kick-off - Goncalo Paciencia and Gelson Fernandes - and they dominated possession and bristled with attacking intent in the first half. Filip Kostic and Silva in particular looked keen to get in behind the Billy Goats' defence; the latter got Rafael Czichos' elbow in the face for his troubles with the first-half drawing to a close. Cologne then snatched the lead to carry into the interval against the run of play, Florian Kainz converting from the penalty spot after Sebastian Rode had fouled Mark Uth in the Frankfurt box.
Silva and Dost both found space early in the second half, but Timothy Chandler's cross from the right didn't do the strikers' runs justice. The visitors thought they had restored parity when Martin Hinteregger fired beyond Timo Horn following a corner, but Dost had handballed in the commotion before it and the Austrian centre-back's effort was ruled out. Cologne coach Markus Gisdol brought Anthony Modeste on for Jhon Cordoba for the final half-hour, hoping the Frenchman's fresh legs would keep Frankfurt on the back foot, but the visitors held firm and got back on level terms with Dost tapping home Djibril Sow's cross for 1-1. A late Kostic drive went out for a corner and it ended honours even. With Hoffenheim and Wolfsburg both winning, Eintracht's European ambitions are over for this year.
- Kainz's penalty was his first Bundesliga goal from the spot. It was also his fifth in Germany's top-flight, meaning this season's tally equals the goals scored in the whole of the rest of his career.
- Cologne have scored in each of their last 19 Bundesliga games - the longest run of all current top-flight teams this season.
- Cologne suffered their first ever Bundesliga defeat at the hands of Frankfurt on Matchday 7 of 1963/64, but went on to win the league. Eintracht finished third.
- Frankfurt's heaviest Bundesliga defeat came in Cologne in October 1983 (7-0), but they had won two of their previous three against the Billy Goats before today.
- Frankfurt have now played 53 games in all competitions this season; although they will have no European games to contend with next.
- Eintracht's creator-in-chief Kostic played under Cologne coach Gisdol at Hamburg between 2016 and 2018.
Watch: Ehizibue: "We're happy to stay in the league"
Cologne: Horn (c) - Ehizibue (Schmitz 86'), Bornauw, Leistner, Czichos - Skhiri, Rexhbecaj (Thielmann 78') - Kainz (Höger 78'), Uth (Drexler 87'), Jakobs - Cordoba (Modeste 68')
Unused subs: Kessler, Mere, Lemperle, Katterbach
Out: Hauptmann (groin), Hector (match fitness), Risse (knee), Terodde (knee), Verstraete (not included)
Coach: Markus Gisdol
Frankfurt: Rönnow - Ilsanker, Hinteregger, N'Dicka - Chandler (da Costa 63'), Torro, Rode (c) (Kohr 63'), Kostic - Sow (de Guzman 80') - Silva, Dost
Unused subs: Trapp, Gacinovic, Toure, Abraham, Hasebe, Durm
Out: Fernandes (calf), Kamada (suspended), Paciencia (match fitness)
Coach: Adi Hütter