Allan McGregor: It was to be no fairytale ending to his illustrious career. Looked dejected on the pitch at the end. The 40-year-old was called into action too many times for his liking in the first half. He produced a top save to deny a shot from Sow from the edge of the area on 12 minutes then produced another magnificent stop to deny Knauff who was allowed to saunter into the Rangers box past Barisic with ease on the 20-minute mark. No chance with Borre’s equaliser from close range. Had to tip a free-kick over as it appeared to be dipping under his crossbar from almost the halfway line late on. Couldn't get near any of Frankfurt's penalties. 7

James Tavernier: Very nervy game from the usually ever-reliant skipper. His deliveries into the box were often overhit and he was guilty of being caught in possession or giving the ball away cheaply on occasion. Poor decision making almost led to a Frankfurt winner late on as a ball was whipped across the face of goal. Curled a last gasp free-kick towards the top corner but Trapp easily held as Rangers dreamed of a winner before penalties. 6

Connor Goldson: Few overhit diagonals and like Tavernier, was off his usual game. Did well to nip the ball off Borre seven minutes after the restart although the Frankfurt man did his best to con the referee into thinking it was a foul. Almost sold the jerseys on 67 minutes when a poor first touch led to a chance for Kamada but luckily he lofted the ball over the bar. He and Bassey were both at fault for Frankfurt’s equaliser as Borre was allowed to nip in between and fire past McGregor. 7

Calvin Bassey: A colossal showing from the 22-year-old who was born to play at this elite level. His upper body strength and recovery pace were called into action on a number of occasions none more so than when he slipped in extra time as Borre bore down on goal but he got back to make a vital challenge as he pulled the trigger. He had the better of Lindstrom at times but was caught on his heels for Borre’s equaliser. 9

Borna Barisic: The Croatian looked exposed at times in the first half as Knauff was given room to roam down the left-hand side. That said, his sliding challenge to deny Knauff on 17 minutes was vital. He was ripped apart by the German three minutes later McGregor was up to the task to tip his shot away. He gifted a chance to Kostic on the half-hour mark after a poor defensive header, fortunately, the Serbian volleyed over the crossbar. Stung the gloves of Knapp with a 20-yard drive in the second half of extra-time. Hobbled off injured in the second half of extra time with the Rangers fans singing his song as he left the pitch. Decent showing. 7

Ryan Jack: Tireless display from Rangers’ No.8. Often firefighting and closing down space. Loads of fight as ever, brilliant closing down to win Rangers a corner 10 minutes before the break. Fired over after a well-worked move involving Aribo and Kent in first-half stoppage time. Ran out of his steam in the second half and was replaced by Davis. 7

John Lundstram: Not his usual vintage self. Caught Rode in the face accidentally that sparked theatrical scenes from the Frankfurt bench as he required treatment that lasted several minutes before being bandaged up. Good covering after Kamada looked to create an angle for a shot in the first half and the Scouser also nicked the ball off Borre as Frankfurt were looking to counter on 19 minutes. Forced Trapp to tip over the bar after connecting with a Barisic free-kick. Often dropped back to form a back three but looked leggy, understandably so, as the match wore on. 7

Glen Kamara: One of few players who rose to the occasion in the 90 minutes. Often winning fouls simply because of his superb close control and inviting challenges. Was relieved to see a Lindstrom shot that deflected off his heel just fly wide of the goal in the second half. He displayed super strength to set up a chance for Sakala late on but the Zambian fired straight at Knapp. Accomplished showing from the Finn. 8

Scott Wright: Super burst through the middle in the opening stages before supplying Aribo. It was a typical performance from the 24-year-old, looking good in flashes but let down at times with poor control. Shown a deserved yellow for hauling down Kamada on the halfway line before being subbed for Sakala. 7

Ryan Kent: Will rue that extra time chance when Roofe found him at the back post only to fire at Trapp. Caused Frankfurt a number of problems other than that. Great turn of pace to win a free kick from Sow on 36 minutes. Poorly weighted pass on the stroke of half-time when Rangers looked to break. Called into action defensively at times when Rangers were under the cosh. Blazed wide when found in space in the box on 54 minutes, poor execution. Tremendous skill to beat Rode and set up a Rangers attack in the closing stages of the game and fired a shot straight at Knapp from 20 yards out in the second half of extra time. 7

Joe Aribo: Started, as expected, in the false nine position and performed the role as best he could. Sent a curling effort just wide from just outside the area in Rangers’ first real glimpse of goal midway through the first half. Carved an opening for Jack just before the break but he couldn’t keep his shot down. Laid the ball on a plate for Kent but he fired wide. Brilliant composure to stroke the ball past Trapp for Rangers opener and send the hoards of bears into delirium. Very unfortunate to receive the game’s first yellow for catching Toure when jumping for a ball. Received a rousing ovation when substituted for Sands. 8

Substitutes

Fashion Sakala: Replaced Wright on 74 minutes. Fired a shot at Trapp late on but was erratic as ever and the Zambian was replaced by Ramsey with four minutes remaining. 3

Steven Davis: Replaced Jack on 74 minutes. As composed as ever and tremendously hit penalty during the shootout. 6

Scott Arfield: Replaced the impressive Kamara for the start of extra-time. Fizzed a shot over the bar four minutes in after a neat Sakala lay-off. Made no mistake with his spot-kick. 5

James Sands: Replaced Aribo in extra-time and moved to right back with Tavernier pushed slightly further forward. 4

Kemar Roofe: Replaced the injured Barisic four minutes from the end of time. Almost set up a goal seconds after coming when he found Kent but he fired at Trapp from close range. Great penalty but unfortunately it was to lead to no comeback. 4

Aaron Ramsey: Replaced Sakala for the final moments of the game. Poor penalty that was to be the difference in the game. 1