Rangers put on an absolutely stunning performance as they saw off nine-man Braga to seal a spot in the Europa League semi-final, although a late wobble which saw the Portuguese side take the tie to extra-time made things harder than they needed to be.
It took the Gers just 70 seconds to open the scoring and tie things up on aggregate. Joe Aribo flicked on a Borna Barisic corner but looked to have asked too much of James Tavernier, but the right-back was at full-stretch as he struck from a tight angle and sent the home fans wild.
Just over three minutes later, Rangers thought they had a second. Another Barisic cross landed right on the head of Kemar Roofe, but his effort was ruled out by VAR after the left-back was deemed to have handled the ball in the build-up.
That frantic pace calmed down soon after but Rangers continued to throw everything at the Braga goal, with Barisic’s crosses proving far too much for the visitors to deal with in the early stages.
Rangers were dominant for the remainder of the first half and could have easily been three or four up. They came close again through Roofe, who connected with another Aribo flick-on but could only divert his effort onto the crossbar.
With just a few minutes remaining in the first period, Rangers were awarded a penalty as Vítor Tormena barged into Roofe, with the Braga man earning a straight red card for his troubles. Up stepped Tavernier, who fired straight down the middle to double Rangers’ advantage heading into the break.
The second half wasn’t as chaotic as the first. Braga decided to actually make a game of this, although they didn’t come close to threatening the dominant hosts.
Roofe had the ball in the back of the net again with a delightful chip 20 minutes from time, but the offside flag went up and VAR confirmed that the striker had gone just a second too soon.
Aaron Ramsey also got the ball into the net, but he did so by barrelling into the goalkeeper and bundling him over the line so, unsurprisingly, a free kick was given instead.
Out of nowhere, Braga pulled one back through a David Carmo header, which levelled the score on aggregate with ten minutes to go.
The visitors finally started to show some threat after that goal, with Rangers made to work hard to hang on and see the game through to extra-time.
Rangers were a little scrappy after play resumed but restored the lead they so richly deserved in the 100th minute as Roofe finally avoided the VAR’s wrath as he tapped home from an Aribo cross.
To make matters worse for Braga, substitute Iuri Medeiros was shown two yellow cards in one swoop – one for a bad foul and one for complaining about it – leaving the visitors with just nine men for the second period.
Rangers could, and should, have had more after the interval. Scott Arfield, who had only just come on, sliced one effort and hit the bar from two yards out just a few minutes later.
Fortunately for Giovanni van Bronckhorst’s men, it didn’t matter as they held on to seal a date with RB Leipzig in the semi-final.
Allan McGregor (GK) – 6/10 – Had very little to do throughout and will be gutted not to have bagged a clean sheet.
James Tavernier (RB) – 9/10 – Absolutely sensational. Came up big with the goals but was absolutely dominant in everything he did at both ends of the field.
Connor Goldson (CB) – 6/10 – Didn’t really have a whole lot to do. Had a backseat role as his fellow defenders shone. Caught out for Carmo’s late header.
Calvin Bassey (CB) – 9/10 – Composed in defence and some superb passing forwards. An unreal ball for Roofe’s penalty win.
Borna Barisic (LB) – 9/10 – Like a man possessed with his crosses. Assisted the first, then very unlucky to have a second ruled out. Could have easily had loads more too. Braga couldn’t live with him.
John Lundstram (DM) – 9/10 – Completely dominated the midfield battle. His best game in a Rangers shirt so far, and it’s not even close.
Ryan Jack (DM) – 7/10 – If we’re being picky, he was a little conservative with his passing, but he gave Rangers the solid foundation from which to build. Nice and composed.
Aaron Ramsey (RM) – 8/10 – Surprisingly played out wide but used his elite vision to pull the strings from there. Relied on his vision to compensate for his limited fitness. So classy.
Joe Aribo (AM) – 9/10 – Never seen anybody win as many flick-ons as this. A dominant force with everything he did and was unlucky not to grab more than just the one assist, A real man-vs-boys vibe with his power.
Ryan Kent (LM) – 8/10 – A massive threat down the left. Combined with Barisic to perfection.
Kemar Roofe (ST) – 9/10 – Worked so hard up top and deserved far more than the one goal he ended up with.
Glen Kamara (CM, 80′ for Jack) – 6/10 – Felt like the wrong change. Looked awkward in midfield and no surprise that Braga got back into the game after he joined. Did, however, manage some nice work for the eventual winner.
Scott Wright (RM, 80′ for Ramsey) – 6/10 – A few nice moves but didn’t offer the same threat as Ramsey.
Leon Balogun (CB, 90′ for Barisic) – 6/10 – Restored some order after his introduction.
Scott Arfield (AM, 105′ for Aribo) – 5/10 – Somehow missed two sitters within minutes of coming on.
Fashion Sakala (ST, 105′ for Roofe) – 6/10 – Put himself about for the final 15.