Rangers added their name to the final four of the Europa League after convincingly beating Braga in the second leg at home.
Kemar Roofe struck in extra time as Rangers reached the Europa League semifinals by beating nine-man Braga 3-1 on the night and 3-2 on aggregate.
Rangers, trailing 1-0 from the first leg, got off to a perfect start when full-back James Tavernier put them ahead in the second minute, sliding in at the back post to connect with a ball from Joe Aribo.
A minute before the break, Braga’s Vitor Tormena was ruled to have brought down Roofe inside the box and French referee Francois Letexier sent off the defender and awarded a penalty to the Scottish side.
Tavernier converted the spot-kick to make it 2-0 on the night putting them 2-1 ahead on aggregate at the break.
Roofe then had his second effort ruled out before Rangers paid the price for the lack of sharpness in front of the goal seven minutes from the end of regulation time.
David Carmo rose to head in a corner to level the tie on aggregate and send the game into extra-time.
In the 11th minute of the extra period, however, Roofe sealed the contest, slotting home a low cross from the excellent Aribo.
Braga had Iuri Medeiros sent off after he was booked for a late challenge on Leon Balogun and again for dissent after shouting in the face of the referee.
It was a moment of madness that left Carlos Carvalhal’s side two men down and Rangers should have put the contest beyond doubt but substitute Scott Arfield sent a glorious chance over the bar from point-blank range.
Rangers last reached this stage of a European competition in 2008 when they lost to Zenit St Petersburg in the UEFA Cup final.
They will take on RB Leipzig for a spot in the final.