Substitute Leon Bailey scored late on as Bayer Leverkusen beat Rangers 3-1 at Ibrox in Thursday's Europa League last-16 first leg to take control of the tie.
Bundesliga side Leverkusen entered the match in fine form and made that count as they opened up a two-goal lead thanks to Kai Havertz and Charles Aranguiz.
Highly rated midfielder Havertz opened the scoring from a penalty that was contentiously awarded by referee Szymon Marciniak and Aranguiz fired in a second after 67 minutes.
But Rangers pulled one back through George Edmundson and were pushing for an equaliser when dealt a sucker punch by Bailey's fine finish two minutes from time.
Karim Bellarabi volleyed over from a good position inside the opening 84 seconds as a Leverkusen side now unbeaten in 10 matches made their intentions known early on.
The visitors' breakthrough arrived 10 minutes before half-time as the referee used the pitchside monitor to adjudge Aranguiz's cross had hit Edmundson on the arm just inside the box, with Havertz confidently converting the penalty.
Aranguiz had a shot blocked on the line by Steven Davis, but the Leverkusen midfielder had the ball in the net less than a minute later with a half-volley into the bottom-right corner.
Sensing the tie was slipping away ahead of next week's return fixture in Germany, Rangers rallied and scored through Edmundson's free header in the centre of the box.
Steven Gerrard's men enjoyed a spell on top, but the lively Aranguiz forced Allan McGregor into a fine stop and Bailey - on the field for only 26 minutes - curled in a late third to leave the Scottish side with a huge mountain to climb.