Rangers progress to the Europa League semi-finals after a 3-1 victory over Braga gave them a 3-2 advantage on aggregate.
The hosts were dominant throughout this game but certainly did hard work against what would become nine men.
Rangers took the lead inside two minutes when Tavernier fired in from close range.
It would have been 2-0 moments later but for Roofe’s header being ruled out by VAR.
Yet their advantage did grow in the first half when Roofe was brought down by Tormena, leading to a penalty and a red card for the Braga man.
Tavernier stepped up and slotted in the penalty to make it 2-0. Braga stayed in the game and stunned Rangers when Carmo headed in with 10 minutes to go.
Extra-time was a nervous prospect for the hosts, but Roofe’s tap-in edged them in front before Medeiros was sent off, reducing Braga to nine men. However, Rangers held on this time to make it into the next round.
RANGERS (4-2-3-1): Allan McGregor;
James Tavernier, Connor Goldson, Calvin Bassey, Borna Barisic;
Ryan Jack, John Lundstram;
Joe Aribo, Aaron Ramsey, Ryan Kent; Kemar Roofe.
SUBS: Robby McCrorie, Amad Diallo Traore, Scott Wright, Leon Thomson King, Glen Kamara, Junior Fashion Sakala, Steven Davis, James Sands, Scott Arfield, Jon McLaughlin, Alexander Lowry, Leon Balogun.
BRAGA (3-5-2): Matheus;
Paulo Oliveira, David Carmo, Vitor Tormena;
Fabiano, Andre Castro, Al Musrati, Andre Horta, Rodrigo Martins Gomes;
Abel Ruiz, Ricardo Horta.
SUBS: Diogo Leite, Jean-Baptiste Gorby, Lucas Mineiro, Bruno Miguel Rodrigues, Iuri Medeiros, Miguel Fale, Bernardo Couto, Yan Couto, Leonardo Buta, Francisco Moura, Vitor Oliveira, Tiago Sa.
TAVERNIER! 1-0 (1-1). Rangers level the tie immediately. The hosts piled forward early on before Barisic swings in a dangerous cross that Aribo flicks forth towards the back post, where Tavernier is on hand to slide it beyond Matheus from close range!
TAVERNIER AGAIN! 2-0 (2-1). Tavernier steps up after a long delay and sends Matheus the wrong way before slotting the penalty down the middle!
CARMO! 2-1 (2-2). Braga equalise on aggregate! The visitors edge forward and win their first corner of the game. Medeiros swings in an inviting cross, and Carmo gets there ahead of Roofe to plant a bullet header beyond McGregor!
ROOFE! 3-1 (3-2). Rangers take the lead on aggregate. Kamara picks Aribo inside the box, and the attacker beats his marker before nutmegging Carmo with a pass that sets up Roofe for a tap-in on the line!
So, what’s next?
The result means that Rangers face Leipzig in the Europa League semi-finals. For Braga, they fall short in the knockout rounds once again.