Kemar Roofe's dramatic extra-time goal sent Rangers into the Europa League semi-finals with a breathtaking 3-2 aggregate win over Braga at Ibrox with the visitors finishing with nine men.
Trailing 1-0 from the first leg of their quarter-final tie in Portugal last week, Gers captain James Tavernier levelled after just over a minute and Roofe soon had the ball in the net only for VAR to rule it out.
Roofe hit the bar before Braga defender Vitor Tormena was sent off in the 42nd minute for denying the Gers striker a goalscoring opportunity with Tavernier firing in the resulting penalty. Giovanni van Bronckhorst 's side should have killed off the tie in the second half but were stunned in the 83rd minute when David Carmo scored to level the tie at 2-2 and take it to extra-time where Roofe pounced to score in the 101st minute before substitute
Iuri Medeiros was also sent packing.
There was as much relief as joy at the end of the 120 minutes but nevertheless it is Rangers' first European semi-final in 14 years and they face RB Leipzig after the German side overcame Atalanta on a 3-1 aggregate.
It was one of the most remarkable European nights Ibrox had witnessed. Rangers player ratings
ALLAN McGREGOR: Euro appearance 101 for the veteran stopper but had virtually nothing to do before David Carmo headed Braga level on aggregate. 6
JAMES TAVERNIER: Handed Gers the perfect start as he squeezed past Matheus and the post 70 seconds in. Had to hold his nerve at the penalty after long wait but cooly slotted hosts ahead. 9
CONNOR GOLDSON: Solid for 83 minutes but took his eye off the ball at the wrong moment and paid the price as Carmo darted past to send the game to extra-time. 7
CALVIN BASSEY: Back in at centre-back where he’s impressed so often. Pace and power on the recovery meant Abel Ruiz was always onto plumbs. 7
BORNA BARISIC: Been badly out of form lately but back with a bang. Threw over the cross which put Gers in front and caused mayhem with every cross slung into the box. 8
RYAN JACK: Covered Tavernier when skipper burst forward while always secure in possession. Gers lost a bit of their control when he went off. 7
JOHN LUNDSTRAM: A big shift from the Scouser as he was forced to cover large swathes of territory by himself at times but never put a foot wrong. 8
JOE ARIBO: Been running out of gas since the AFCON but this was a repeat of early season jet-fuelled displays. Vital touch in build up to opener before teeing up Roofe for the winner. 8
AARON RAMSEY: At last in from the start in Europe. Brough control and composure but couldn’t sort his feet as he wasted big chance before being replaced. 7
RYAN KENT: Full exhibit of his twists and turns from a player who always shows up on the big occasion. Didn’t neglect his defensive work either. 7
KEMAR ROOFE: Got his rewards for refusing to give in after VAR and the woodwork denied him three goals, popping up to tap home Gers’ precious extra-time winner. 8
Subs
SCOTT WRIGHT (for Ramsey, 80) 6
GLEN KAMARA (for Jack, 80) 6
LEON BALOGUN (for Barisic, 90) 6
FASHION SAKALA (for Roofe, 105) 2
SCOTT ARFIELD (for Aribo, 105) 2