Teenager Damion Downs came off the bench to score a 92nd-minute winner against Union Berlin to keep Cologne's hopes of a miraculous great escape alive and plunge Union back into the thick of the relegation battle.

Union had raced into a 2-0 lead inside 19 minutes with Robin Knoche's thumping header and Kevin Volland's penalty putting the Berliners into cruise control.

A Florian Kainz penalty shortly before half-time gave Cologne hope but Union's lead remained intact until the 87th minute, when Cologne staged a stunning turnaround.

Steffen Tigges scored from close range to make it 2-2 and, with Union still reeling, 19-year-old substitute Downs converted Linton Maina's cross to raise the roof and give his side an invaluable 3-2 win.

"We're overjoyed," Cologne captain Kainz told Sky Sports Germany.

"It's nerve-wracking to play like that, when you absolutely have to win the game. To turn it around, it was a hugely important victory. Unbelievable."

Cologne came into this crunch game five points adrift of Mainz, who currently occupy the relegation play-off place, and six points behind Union. 

They are now two points behind Mainz and three off Union with Bundesliga safety still a possibility for the Billy Goats.

One of Germany’s 'yo-yo clubs', Cologne are looking to avoid a record seventh relegation since their first in 1998. They will travel to Heidenheim on the last day needing to muster another victory.

The story looks very different for Union, who began the season playing in the Champions League. 

They must now pick themselves up ahead of their final game at home against Freiburg next weekend, needing at least a point to avoid the possibility of automatic demotion.

Bochum, who host champions Bayer Leverkusen on Sunday and travel to Werder Bremen on the final day, need a point from one of those games to ensure their Bundesliga survival.