Two James Tavernier goals spurred a second-leg comeback by Rangers, but the hosts were taken to extra time by a spirited Braga side who had two men dismissed.
Rangers sealed their ticket to the UEFA Europa League semi-finals, but they required extra time to do it, Kemar Roofe finally seeing off a Braga side who finished a tense tie with nine men.
2' Tavernier turns in opener
32' Roofe rattles the woodwork
42' Vitor Tormena sent off
44' Tavernier converts the resulting penalty
83' Carmo heads in from corner
101' Roofe slots in decisive goal
105' Iuri Medeiros sees red
Match in brief: Inspired hosts turn tie around
Rangers had struggled to create a chance of note in the first leg, and the hosts almost instantly made amends at Ibrox. Borna Barišić swung in the first of several dangerous crosses he would deliver during a dominant first half for his side, culminating in James Tavernier steering a second-minute finish beyond goalkeeper Matheus from an acute angle at the far post after Joe Aribo had nodded the ball on.
In-form striker Kemar Roofe almost doubled Rangers' lead 30 minutes later, hitting the crossbar after Aribo again flicked a centre beyond the bewildered Braga back line. It was Tavernier, though, who scored the second, emphatically converting a penalty after Vitor Tormena was dismissed for bringing down Roofe inside the penalty area a minute before the break.
Braga rallied despite their depleted ranks, retaining a threat in transition while absorbing considerable pressure as John Lundstram, Aaron Ramsey and Aribo all went close. Their reward for their resilience came seven minutes from time, David Carmo expertly heading Iuri Medeiros's searching corner beyond Allan McGregor to level the tie and subdue the boisterous home fans.
A thrilling period of extra time ensued. Roofe raced in to convert Aribo's hopeful cross after he had sped to the byline, then Iuri Medeiros was sent off, forcing Braga to push for another goal with a two-man disadvantage. Rangers held on, setting up a semi-final against Leipzig and becoming the first Scottish club to reach the semi-finals in the Europa League era.
Alex O'Henley, match reporter
They made hard work of it but Rangers finally managed to get over the line against a spirited Braga side who finished with nine players. The hosts looked to be cruising towards the semi-finals with two Tavernier first-half goals, but they couldn't find a third. Carmo gave Braga hope before Roofe's extra-time strike secured Rangers' place in the last four.
Semi-finals: 28 April and 5 May
Leipzig vs Rangers
West Ham vs Frankfurt
Giovanni van Bronckhorst, Rangers coach: "To reach the last four in Europe is a major achievement for everyone and we worked hard for it. We knew a 1-0 loss in Braga wasn't a bad result and we started the game really well. We applied a lot of pressure in the first half and against ten and nine men we could have played better. The players were a bit tense and nervous because we wanted to go through and I'm really happy for everybody that we succeeded."
James Tavernier, Rangers captain: "Extra time is obviously something you don't want, but I thought the boys really dug deep to see it over the line. Kemar was outstanding tonight and it was a matter of just keeping possession. We had some nervy moments and gave the ball away too cheaply – myself included – but in the last five minutes we kept the ball. We're through to the semi-finals and everybody can be proud of themselves."
Kemar Roofe, Rangers striker: "It's unbelievable. It means so much to everybody here. It's a special night."
Carlos Carvalhal, Braga coach: "The way Rangers started, with intensity, made it very difficult for my players. The first ten, 15 minutes were very difficult. We expected this; we prepared the players for it, but sometimes in football you can't control everything. After the scoreline went to 3-1 and with nine players, we showed a lot of desire to get back into the game. I am very proud of my players."
David Carmo, Braga defender: "I am proud of the team. We are a very strong group. They say we are a young team, but this experience makes us grow. We are very proud. We knew it was going to be difficult. They managed to score at the beginning of the game, which helped them a lot – as did the atmosphere. But we did what we had to do, giving everything on the field until the last minute."
- Rangers are unbeaten in 11 home games against Portuguese teams in UEFA club competition, winning eight of them.
- The Scottish side have scored in 22 consecutive home games in all competitions.
- This victory drew Rangers level with Glasgow rivals Celtic’s 16 wins in the Europa League (group stage to final) – and they got there in 14 fewer matches (42 to 56).
- The Gers have not lost in their last five Europa League home games, winning four times during that run.
- Braga have lost seven of their last eight away matches in the knockout phase of the competition, drawing once.
- Os Arcebispos had won all 12 previous UEFA ties in which they travelled away to the second leg holding a lead.
Rangers: McGregor; Tavernier, Goldson, Bassey, Barišić (Balogun 90+1); Jack (Kamara 80), Lundstram; Aribo (Sakala 106), Ramsey (Wright 80), Kent; Roofe (Arfield 106)
Braga: Matheus; Fabiano, Paulo Oliveira, Vitor Tormena, Carmo (Miguel Falé 118); André Horta (Francisco Moura 46), André Castro (Gorby 106), Al Musrati (Lucas Mineiro 100); Abel Ruiz (Vitor Oliveira 61), Ricardo Horta, Rodrigo Gomes (Iuri Medeiros 61)
Where is the 2022 Europa League final?
Seville's Ramón Sánchez-Pizjuán Stadium will stage the final on Wednesday 18 May.
The winners gain a place in the 2022/23 UEFA Champions League group stage, if they have not qualified via their domestic competition.