Rangers strengthened their hopes of progressing to the Europa League knockout stages as they survived a nervy finish to beat Sparta Prague at Ibrox.
First-half strikes from Danilo at Todd Cantwell gave the hosts a deserved 2-0 lead at half-time, before Lukas Haraslin's goal after the break halved the deficit.
Rangers missed several chances to kill the game off, but held on for a crucial three points despite a late rally by the Czech side.
Philippe Clement's side now sit second in Group C, two points behind Real Betis and three clear of Sparta.
Reaction and as it happenedGet all the latest Rangers news and analysisRangers started the game on the front foot and should have led inside six minutes, but Cantwell's cross-shot evaded Danilo with Sparta's defence breached.
However, Clement's side kept their foot to the floor and didn't have to wait much longer to hit the front. A horrible error from James Gomez put Danilo clean through on Peter Vindahl's goal, and the Brazilian slid a calm finish into the corner.
With Ibrox at its raucous best, Rangers poured forward again and again, and doubled their lead in clinical fashion. Danilo fed Cantwell, who cut inside before rolling a clinical finish past Vindahl's despairing dive.
Sparta were powerless to resist the hosts, and it was only the frame of the goal that denied Danilo his second of the night before the break.
There was a drop-off in the second half, despite an impressive performance from young substitute Ross McCausland, and Sparta got themselves on the scoreboard when Haraslin finished off a slick team move.
Rangers wasted several chances on the break, and were forced to endure a nervy finish to the game as an increasingly confident Sparta pushed for an equaliser that ultimately wouldn't come.
More to follow.
Line-ups
Rangers
Formation 4-2-3-1
1Butland2TavernierBooked at 89mins6GoldsonBooked at 90mins26Davies31BarisicBooked at 58mins4Lundstram8Jack13CantwellSubstituted forMcCauslandat 69'minutes14LammersBooked at 90minsSubstituted forCifuentesat 90+5'minutes19SimaSubstituted forLawrenceat 85'minutes99Pereira da SilvaSubstituted forDessersat 85'minutesSubstitutes
9Dessers11Lawrence15Cifuentes21Sterling25Roofe28McCrorie32Wright38King44Devine45McCauslandSparta Prague
Formation 3-4-2-1
1Vindahl41VitíkBooked at 45mins25Sørensen5GomezBooked at 37minsSubstituted forWiesnerat 45'minutes2PreciadoBooked at 90mins18SadílekSubstituted forHaraslínat 59'minutes6Kairinen30Zeleny9KuchtaSubstituted forSejkat 67'minutes14Birmancevic7OlatunjiSubstituted forLaçiat 45'minutesBooked at 79minsSubstituted forVydraat 85'minutesSubstitutes
8Pavelka10Karabec19Mejdr20Laçi22Haraslín24Vorel26Vydra28Wiesner29Sevcík39Sejk44SurovcíkLive Text
Match ends, Rangers 2, Sparta Prague 1.
Second Half ends, Rangers 2, Sparta Prague 1.
Connor Goldson (Rangers) is shown the yellow card for a bad foul.
Offside, Sparta Prague. Lukás Haraslín tries a through ball, but Veljko Birmancevic is caught offside.
Corner, Rangers. Conceded by Patrik Vydra.
Foul by Angelo Preciado (Sparta Prague).
Tom Lawrence (Rangers) wins a free kick on the left wing.
Substitution, Rangers. José Cifuentes replaces Sam Lammers.
Angelo Preciado (Sparta Prague) is shown the yellow card for a bad foul.
Foul by Angelo Preciado (Sparta Prague).
Tom Lawrence (Rangers) wins a free kick on the left wing.
Corner, Sparta Prague. Conceded by Tom Lawrence.
Sam Lammers (Rangers) is shown the yellow card for a bad foul.
Jaroslav Zeleny (Sparta Prague) wins a free kick in the attacking half.
Foul by Sam Lammers (Rangers).
Delay over. They are ready to continue.
Delay in match (Sparta Prague).
Attempt missed. Ross McCausland (Rangers) left footed shot from the centre of the box is high and wide to the left. Assisted by Cyriel Dessers.
James Tavernier (Rangers) is shown the yellow card.
Attempt missed. Kaan Kairinen (Sparta Prague) right footed shot from outside the box misses to the left.
How to play
Rate players out of 10 throughout or after the game. The rater will close 30 minutes after the final whistle.
Rating range key1 = Give it up10 = Pure perfection
Rangers
Squad number1Player nameButland
Squad number2Player nameTavernier
Squad number6Player nameGoldson
Squad number26Player nameDavies
Squad number31Player nameBarisic
Squad number4Player nameLundstram
Squad number8Player nameJack
Squad number13Player nameCantwell
Squad number14Player nameLammers
Squad number19Player nameSima
Squad number99Player nameDanilo
Squad number9Player nameDessers
Squad number11Player nameLawrence
Squad number15Player nameCifuentes
Squad number45Player nameMcCausland
Sparta Prague
Squad number1Player nameVindahl
Squad number41Player nameVitík
Squad number25Player nameSørensen
Squad number5Player nameGomez
Squad number2Player namePreciado
Squad number18Player nameSadílek
Squad number6Player nameKairinen
Squad number30Player nameZeleny
Squad number9Player nameKuchta
Squad number14Player nameBirmancevic
Squad number7Player nameOlatunji
Squad number20Player nameLaçi
Squad number22Player nameHaraslín
Squad number26Player nameVydra
Squad number28Player nameWiesner
Squad number39Player nameSejk