Kemar Roofe scored the winner as Rangers overturned a first-leg deficit to beat Braga in extra-time and make it through to the semi-finals of the Europa League, where they will take on RB Leipzig.

Trailing 1-0 from the first leg, the Scottish champions got off to a superb start as James Tavernier opened the scoring after just 70 seconds after Borna Barisic’s cross was flicked on by Joe Aribo.

Spurred on by a fervent atmosphere inside Ibrox, Rangers made it 2-0 on the night just before half-time as Tavernier netted from the spot. Braga were reduced to 10 men, with Vitor Tormena being sent off.

Roofe thought he had scored but his effort was ruled out for offside following a VAR check, but looked as if they had done enough to progress in normal time. That was until the closing stages when, despite their numerical disadvantage, Braga took the game to extra time through David Carmo’s header.

Rangers were left hugely frustrated but remained full of determination and eventually went back in front, Roofe steering the ball into the back of the net following good work from Glen Kamara and Aribo.

Braga, to their credit, continued to battle bravely, but their hopes of forcing penalties effectively faded when they went down to nine men as Yuri Medeiros was given is marching orders.

Braga, to their credit, continued to battle bravely, but their hopes of forcing penalties effectively faded when they went down to nine men as Yuri Medeiros was given is marching orders.

It was an impressive display from Rangers, who had much energy throughout and have now reached their first European semi-final for 14 years.