Allan McGregor: The 40-year-old marked his 100th European appearance but couldn't mark the milestone with a win. Well beaten when Horta saw his strike cannon off the upright on 24 minutes, Horta did beat him again just moments later and thought he had fired Braga ahead only for the goal to be ruled out by VAR for a foul on Jack in the build-up. Not much he could do when the hosts did break the deadlock five minutes before the break when Ruiz capitalised on poor defending from Balogun to rifle into the corner. Tipped a stinging Horta shot away for a corner on 77 minutes. 6

James Tavernier: Up against the highly-rated teenager Rodrigo Gomes, coped reasonably well against the 18-year-old. Looked frustrated with the lack of right-hand side movement and support in the second half. 6

Connor Goldson: Decent display from the vice-captain. Switched over to the left-hand side as Rangers moved to a back-five in the second half temporarily before moving back to his natural position. Should’ve hit the target when he connected with a Tavernier corner but headed wide. Won Rangers a free-kick in a promising position late on and almost found himself with a chance from close range in stoppage time only to be blocked by Matheus. 7

Leon Balogun: Good interception on Medeiros on three minutes but was pretty poor from then on in. He was at fault for Braga’s opener when he stumbled over the ball in the box which allowed Ruiz the chance to fire a shot into the corner and looked shaky at various moments thereafter. Hooked for Barisic on 62 minutes. 5

Calvin Bassey: Solid defending to snuff out a Braga attack on eight minutes and looked relatively comfortable up until Horta’s disallowed goal when he didn’t cover himself in glory. That aside, he looked relatively comfortable on the left-hand side of the backline and moved into centre-half when Balogun was subbed. 7

Glen Kamara: Caught in possession or guilty of giving the ball away cheaply in the opening stages. Taken out by a wild challenge from Carmo that saw the Braga man receive a deserved yellow card on 22 minutes but posted missing for much of the first half. Involved in a heated debate with Tavernier on 54 minutes. The Finn’s quick turns did win Rangers some fouls in promising areas but he is capable of so much more. 6

John Lundstram: Great interception to break up a potential Braga attack on 16 minutes to set up a Rangers move. Half time switch saw the former Sheffield United man move back to form a back-five for the opening stages. Always willing to show for the ball and get things moving although he put Jack in a spot of bother 13 minutes into the second half, fortunately, it never came to anything. Best player in a blue jersey. 7

Ryan Jack: Great weighted pass into Sakala for a shot on 33 minutes but the Zambian blasted over after making room for the shot. Cautioned for a mistimed challenge on Musrati and hurt himself in the process, luckily he was able to continue after treatment. Guilty of giving the ball away cheaply at times. Looked dejected when he was one of three players to make way on 62 minutes. 5

READ MORE: Instant Rangers reaction: Fashion Sakala offers little as Braga snatch narrow victory through unforced error

Scott Arfield: Preferred to Aaron Ramsey and started brightly by playing in Kent for a half-chance on four minutes but had a relatively quiet opening half and despite working his socks off as usual he couldn't impose himself on the Braga defence. 6

Ryan Kent: Saw a half chance saved by Matheus when he was found in space by Arfield early doors. Terrific burst of pace and step over to set up a Rangers attack on nine minutes, he played the ball wide to Arfield but his square ball was blocked. Outmuscled when played through on goal on 32 minutes and faded away as the first half wore on. Struggled to influence the game in the second half. 6

Fashion Sakala: Big call by Giovanni van Bronckhorst to start the Zambian ahead of Kemar Roofe. His pace was causing Braga problems initially, he burst away from Tormena before firing a ball across goal only to be deflected wide for a corner. His erratic shooting was in full view on 33 minutes when he blazed over after doing the hard work and creating an angle for a strike on goal. Outmuscled by Tormena in first-half stoppage time that made you realise just how much Rangers miss the physicality of Alfredo Morelos. Carmo had him in his back pocket at times. Replaced by Roofe on 62 minutes. 5

Substitutes

Kemar Roofe: Replaced Sakala and tried hard but almost too hard. Gave away three fouls and caught offside. 3

Borna Barisic: Replaced Balogun and did his defensive duties well. 4

Joe Aribo: Replaced Jack and gave something different for the Braga defence to think about. Saw a shot blocked late on. 4