Match ends, Sporting Braga 1, Rangers 0.
Rangers will need to come from behind in Glasgow to reach the semi-finals of the Europa League after falling to a disappointing defeat in Braga.
Abel Ruiz’s effort just before the break was the difference in front of a thunderous crowd.
The reigning Scottish champions struggled to create and failed to register an effort on target against their highly-charged hosts, who also had a first-half goal disallowed.
The sides meet at Ibrox next Thursday.
The winners of the tie will face either RB Leipzig or Atalanta, who drew 1-1 in the first leg in Germany, in the last four.
For Rangers to make it that far, manager Giovanni van Bronckhorst says they must harness the “hostile and overwhelming” Ibrox atmosphere when Braga come calling.
“We wanted a good result to take with us,” he told Sky Sports. “It was a hard game, we conceded one goal and tried to push for 1-1 in the second half. In the last twenty minutes we had more control.
“Next week we play at home with the crowd behind us. We know the task ahead. You saw today after 70 minutes they dropped their energy levels a bit so we have to give all the energy next week to go to the semis.”
The pilgrimage to the Municipal Stadium in Braga was done in hope and expectation for all who made the journey.
Just two years ago, Rangers triumphed in the hills en route to the last 16. Over 10,000 followed the Scottish champions back here again, the blow of Sunday’s Old Firm defeat doing little to dilute their spirits as they made the trip to Monte Castro on an overcast and gloomy night.
The uphill climb back to the city centre after the game would be symbolic for the challenge their team face after an enthralling quarter-final first leg.
Braga, who defeated Monaco and FC Sheriff to get this far, swarmed over a Rangers side who at times toiled without the focal point of the injured Alfredo Morelos.
There was a sense of pageantry at the start. Pyrotechnics illuminated sections of the away support, the smoke dissipating enough to see a giant fan display beneath them from the locals.
The hills were alive with the sound of a bumper home crowd clapping in unison, their appetite whetted for another barnstorming performance. They weren’t disappointed.
Rangers, though, started brightly. Ryan Kent and Fashion Sakala had half chances in quick succession, with the former slaloming by a clutch of defenders five minutes later. But the hosts would soon find their groove.
The warning shots came in waves. Every time Braga crossed halfway a ripple of applause followed them in anticipation. And on 25 minutes a collective gasp rose into the Portuguese sky as the hosts’ top scorer Ricardo Horta slashed a low shot off Allan McGregor’s left-hand post.
Then came let-off number two. Andre Horta thought he had scored as his deflected shot rippled the net, triggering bedlam in the stands. The party had just about stopped when referee Davide Massa trotted to the VAR monitor to rule Ryan Jack had been fouled in the build-up.
Still, a youthful Braga continued to come as the Rangers support attempted to rouse their side from the gods. Kent burst forward on the break but was eventually snuffed out, while Sakala lashed an uncontrolled shot well over the bar when a clear and rare sight of goal had creaked open.
But on 39 minutes, the hosts took the lead their perseverance and play deserved.
Leon Balogun failed to clear as Iuri Medeiros cushioned the ball to Ruiz. The former Barcelona man took one measured touch before sending the ball thundering past the helpless McGregor.
Van Bronckhorst wasted no time heading down the tunnel, but the break did little to put off the hosts being roared on from the raucous stands.
McGregor wasn’t tested all too often, but Carlos Carvalhal’s Braga pressed high and smothered any attempt to cleave them open.
Kemar Roofe, Joe Aribo and Borna Barisic were introduced in a bold roll of the dice by Van Bronckhorst as Rangers pushed. A Connor Goldson header drifted wide of the far post from a corner when he should have done better, with the defender unable to get a toe to a dropping ball in injury time.
In the end Ruiz’s goal was the difference, but the hosts, who defeated Benfica last week, will feel buoyed for their trip to Glasgow next week as Rangers dig deep.
That this Braga team have real quality.
It shouldn’t be that much of a surprise given the scalps they have already taken this season, but they controlled most of this game. Their interplay was excellent, and Rangers struggled to cope with the high press, particularly in the second half.
Their manager warned pre-match they are the most attacking team in the Europa League. That was seen in spades here.
For Rangers, it was quite the opposite. No shot was registered on target, the first time that has happened in Europe, excluding qualifiers, since 2009 against Stuttgart.
Travelling fans were confident coming here, with the one seed of doubt in their team surely being how they would cope without Morelos. The answer tonight will be a worry.
However, they are still in this tie and more than capable of returning to Scotland to turn this around. What is sure, though, they need to be better than they were here.
The big games keep coming for Rangers. A must-win game against St Mirren in Paisley is up in the league on Sunday (12:00 BST) before Braga come to Glasgow on Thursday (20:00).
70de Souza Silva16Veiga Teixeira Carmo3Tormena de Farias
2Couto8Al Musrati10Luz Horta57Martins Gomes
45Picanço Medeiros9Ruiz21da Luz Horta
Match ends, Sporting Braga 1, Rangers 0.
Second Half ends, Sporting Braga 1, Rangers 0.
Hand ball by Fabiano (Sporting Braga).
Foul by Calvin Bassey (Rangers).
Vítor Oliveira (Sporting Braga) wins a free kick in the attacking half.
Corner, Rangers. Conceded by David Carmo.
Attempt blocked. Calvin Bassey (Rangers) left footed shot from the centre of the box is blocked. Assisted by John Lundstram.
Substitution, Sporting Braga. Paulo Oliveira replaces Yan Couto.
Connor Goldson (Rangers) wins a free kick on the right wing.
Foul by David Carmo (Sporting Braga).
Kemar Roofe (Rangers) wins a free kick in the defensive half.
Foul by Castro (Sporting Braga).
Offside, Rangers. James Tavernier tries a through ball, but Kemar Roofe is caught offside.
Foul by Kemar Roofe (Rangers).
Matheus (Sporting Braga) wins a free kick in the defensive half.
Substitution, Sporting Braga. Castro replaces Al Musrati because of an injury.
Substitution, Sporting Braga. Lucas Mineiro replaces André Horta.
Corner, Sporting Braga. Conceded by Allan McGregor.
Attempt saved. André Horta (Sporting Braga) right footed shot from outside the box is saved in the bottom left corner. Assisted by Rodrigo Gomes.
Glen Kamara (Rangers) wins a free kick in the defensive half.