A brilliant volley from Angelino just five minutes from time gave RB Leipzig a 1-0 win over Rangers in the first leg of their Europa League semi-final.
Rangers had defended brilliantly throughout and looked to have seen off everything Leipzig could throw at them.
But with just five minutes left on the clock at the Red Bull Arena, the home side were sent wild as their Spanish star fired home from the edge of the box to give them the win.
Neither goalkeeper was tested in the first 45 as Rangers sat back with their back five, including midfielder John Lundstram, and invited Leipzig to break them down.
There was an opening on 17 minutes when the highly acclaimed Christopher Nkunku was fed into the box by Benjamin Henrichs but his poor control allowed Calvin Bassey to block his effort at the second attempt.
Connor Goldson had a very good game, and that showed with an outstanding challenge on Konrad Laimer early on.
The only other action of note in the opening half came when former Manchester City wing-back Angelino managed to get a shot away from the edge of the box, but Rangers captain James Tavernier blocked it before his goalkeeper Allan McGregor was called into action.
Rangers then began the second half brightly and almost scored on a couple of occasions.
A counter-attack led by Glen Kamara and Joe Aribo sent Ryan Kent into the home side’s box and he pulled his shot just wide and ahead of Tavernier. Moments later the Rangers skipper saw an attempt well blocked.
But Leipzig were always going to be dangerous with the likes of Nkunku and he saw a goal-bound effort blocked by McGregor as the first shot on target arrived just after the 50th minute.
The biggest chance of the game then fell to Nkunku as he broke into the box after 70 minutes. He got away from Lundstram and took the ball beyond McGregor but fired over. Yes, the French star was under pressure, but the attempted finish was terrible.
Rangers were now not just sitting back and Kent on the counter looked very dangerous. He did test Peter Gulacsi late on as the visitors went in search of an unlikely first-leg lead.
Leipzig finished strongest and Tyler Adams forced McGregor into a late save, but there was little the Rangers keeper could do from resulting corner.
Rangers cleared their lines, but only as far as Angelino – who volleyed home into McGregor’s right corner to the delight of the home fans.
The goal gives Leipzig a 1-0 lead to take back to Ibrox for the second leg – but the Scottish champions will know they have everything to play for in Glasgow next week.
GK: Peter Gulacsi – 6/10 – Had very little to do, but made no mistakes.
CB: Lukas Klostermann 5/10 – Had the most difficult evening of the Leipzig defense with Kent proving problematic at times.
CB: Josko Gvardiol – 6/10 – Marshalled the back three pretty well, but like all the defence, had little to do.
CB: Marcel Halstenberg – 6/10 – Was solid enough and did nothing wrong.
RM: Benjamin Henrichs – 7/10 – Pushed on well down the flanks and had the beating of Barisic for most of the evening.
CM: Konrad Laimer – 7/10 – Had a very good game, tried to get forward whenever he could and also did well with his defensive duties.
CM: Tyler Adams – 6/10 – He worked hard and broke down almost everything that came near him.
LM: Angelino – 8/10 – Decent chance in the first half, and he made no mistake with a brilliant finish for the only goal of the game.
AM: Dominik Szoboszlai – 6/10 – Showed some great touches, wasn’t easy to pick up but did not manage to create anything clear-cut.
AM: Dani Olmo – 5/10 – Leipzig could probably have expected more from the Spanish play-maker who did little with the ball.
ST: Christopher Nkunku – 5/10 – Stretched the Rangers defense at times, and when he did get his chance just after the hour blazed it over. Very poor.
SUB: Emil Forsberg – N/A
SUB: Andre Silva – N/A
SUB: Yussuf Poulsen – N/A
SUB: Nordi Mukiele – N/A
GK: Allan McGregor – 6/10 – Solid throughout and did not look like being beaten and it took a great finish to do so.
RB: James Tavernier – 7/10 – Always a danger from set-pieces but he defended very well too.
CB: Connor Goldson – 7/10 – Probably Rangers’ best player. He coped well with Nkunku and made some crucial blocks.
CB: John Lundstram – 7/10 – Really good showing from the central midfielder playing in defence. Very good in coverage.
CB: Calvin Bassey – 6/10 – Nervy start but grew into the game.
LB: Borna Barisic – 4/10 – Should have been punished in the first half for a poor clearance. He struggled at times against Leipzig’s right-sided options.
CM: Ryan Jack – 5/10 – Offered little but stuck to his task.
CM: Joe Aribo – 7/10 – Some nice touches, and tried his best to pull the strings in the middle. Impressive in the second half.
CM: Glen Kamara – 7/10 – Worked his socks off and was always sweeping up trouble.
ST: Stephen Wright – 5/10 – Didn’t see much of the ball and when he did, it didn’t really stick.
ST: Ryan Kent – 7/10 – Such a dangerous player, always looked a threat and almost scored at the start of the second half.
SUB: Fashion Sakala – 5/10 – Held up ball quite well when he came on.
SUB: Scott Arfield – N/A
SUB: James Sands – N/A