Allan McGregor: The 39-year-old took calculated risks in possession to invite Hearts pressure and play through the press. He made a huge save from Barrie McKay and kept out Cameron Devlin’s drive but made a terrible error to concede the equaliser. 5

James Tavernier: Reinstated into the first team following Nathan Patterson’s appearance against Hibs, the captain linked well with Joe Aribo ahead of him. He did, however, endure a shaky second half and often looked slightly suspect positionally with a lack of intention going forward. 5

Connor Goldson: Played a couple of mistimed balls out to his right but marshalled his backline very well generally. He was also quick to close the gap with his midfield when John Lundstram roamed forward marking Beni Baningime. Almost played his team into trouble with a loose header that Lundstram couldn’t reach. 6

Leon Balogun: Having shaken off a knock picked up on international duty, his aggressive approach dealt well with Liam Boyce. It was quite unbelievable that he did not score on 28 minutes, forcing a double save from Craig Gordon. Got wrong-sided by Boyce on occasion which played his team into trouble. 6

Borna Barisic: Brave in possession on the left side in the early stages and was often the outlet in his team’s build-up play. His final ball caused issues while still not being at its set-piece-esque best. A performance in which he wasn’t poor without convincing. 6

John Lundstram: Predictably played ahead of Steven Davis, given the latter featured for his country during the break. He was everywhere and his team’s best player in the opening 45. Winning a tackle on Michael Smith that he looked destined to lose epitomised his game. The goal before half-time was a touch of class, taking his time to curl the ball into the top corner. 7

Glen Kamara: Looked forward and gained ground with clever faints and flicks while doing the hard yards defensively. His graft, and use of the ball alongside Lundstram, allowed the more offensive 4-2-3-1 to work. 6

Joe Aribo: Strong running and incision on the ball from the right of midfield. His final ball was better and played quicker – like the rest of his team everything about his game seemed a couple of yards sharper. He should, however, have released Scott Wright quicker after the break. 6

Scott Wright: Hasn’t yet nailed a starting place in the absence of Ryan Kent – but he displayed plenty to be excited about. Set Alfredo Morelos up for three good first-half chances. 6

READ MORE: Rangers' damage is self-inflicted once again as Craig Gordon heroics earn Hearts an Ibrox draw

Ianis Hagi: Playing as the 10, Hagi had the freedom to roam and create. Going wherever a central overload may occur, the Romanian’s quick-thinking moved his team into dangerous areas. He stretched the pitch to create the space Lundstram would stride into and score from and generally orchestrated his team’s attacks throughout. 7

Alfredo Morelos: The forward put in a complete performance against the other half of Edinburgh two weeks ago. In this one he was closely tracked by Craig Halkett and so wasn’t able to drop down a line as effectively as usual. Nonetheless the Colombian could have conceivably had two goals in the opening 45 but fluffed a couple of good chances. Morelos slowed the game down and passed up an excellent chance on the hour while a criminal miss from a chance that should have put the game beyond doubt. 5

Substitutes

Juninho Bacuna: Introduced on the hour to the left of midfield where his first involvement resulted in a chop and shot. The ball for Kemar Roofe opened the defence well but overall he struggled to impact the game. 5

Steven Davis: The veteran made a vital interception in the box and then won the ball high for a Morelos chance. 5

Kemar Roofe: Clipped the post with a chance and set up Morelos for what should have been the decider. 6