Hearts bolstered their Premiership title ambitions with a stirring Tynecastle comeback that effectively ended Rangers' championship aspirations. The home side looked disjointed during a poor first half in which Rangers led through a goal by Dujon Sterling and could have extended their advantage.
Half-Time Turnaround
Hearts manager Derek McInes made pivotal changes at half-time, most notably introducing Blair Spittal, to completely alter the game's dynamic. Stephen Kingsley equalised, and Lawrence Shankland drove home the winner with a superb finish that sent the Hearts fans into raptures.
After a result that leaves Rangers seven points behind leaders Hearts with three games remaining, Paul Forsyth assesses the performances of both teams.
Hearts Player Ratings
Alexander Schwolow - 7
Solid for the most part, although his failure to deal with one cross led to Aasgaard heading against the bar.
Michael Steinwender - 6
Moved about by system changes, but gave his all. Played much of the game with his head wrapped in a bandage.
Craig Halkett - 7
Showed strength and leadership throughout. His header over was Hearts’ only effort of the first half.
Stuart Findlay - 7
His misjudged clearing header led to the equaliser but he stood firm when the going was tough and got his rewards.
Stephen Kingsley - 7.5
Pushed forward to play wing-back after a half-time reshuffle, he was involved in everything. Pounced on a loose ball to grab the equaliser.
Beni Baningime - 6.5
Once he got to grips with the opponents’ numbers in midfield, he was sharp and competitive in the tackle.
Marc Leonard - 6.5
Excellent positional sense and distribution. His deep, swirling free kicks to the back post were a useful weapon.
Islam Chesnokov - 3
Drifted across the front in the early stages, sometimes as a No 10, but made zero impact. Hooked at half-time.
Alexandros Kyziridis - 6.5
Shifting from wing to wing in a poor first half, he came to life after the break, setting up the equaliser with a shot off the post.
Claudio Braga - 7
Struggled to get into the game but his hard work gradually paid off. Had one effort comfortably saved.
Lawrence Shankland - 8
Needed just one chance and boy did he take it. Brilliant movement and an even better finish put Hearts in front.
Substitutes: Spittal (Chesnokov, 46), McCart (Kyziridis, 82), Kabore (Braga, 82), Kent (Kingsley, 90), Altena (Shankland, 93). Not used: Fulton, Forrest, Kerjota, Mato.
Derek McInnes - 7.5
Got his selection wrong, but he made the necessary changes to turn the game around.
Rangers Player Ratings
Jack Butland - 7
Couldn’t be blamed for either of the goals. His terrific save prevented Spittal putting Hearts further ahead.
James Tavernier - 5.5
One of his long throws, which were like corners, produced the goal, but he was posted missing for the equaliser.
Emmanuel Fernandez - 6
Increasingly stretched as the game wore on. Didn’t carry his usual threat in the opponents’ penalty area.
Nasser Djiga - 6
Strolled through the first half, but wilted under pressure. Berated by fans for laughing and joking at full-time.
Dujon Sterling - 7
Comfortable at left-back until Hearts changed shape. Scored the opener, albeit with a scruffy, deflected shot.
Tochi Chukwuani - 6.5
Dominated the early stages, breaking up the play and moving the ball on efficiently. Later lost his grip of it.
Mohamed Diomande - 6.5
Making a rare start, he gave Rangers an extra midfielder. Dovetailed well with Chukwuani until the game turned.
Nico Raskin - 6.5
In a three-man midfield, he had the freedom to run beyond. Sacrificed when Rangers needed an extra striker.
Andreas Skov Olsen - 5.5
A surprise starter, he was a little more influential than usual, but he went missing in the second half and was substituted.
Mikey Moore - 6
An elusive figure in the front three, dropping short for the ball and then running with it. Promising start but fizzled out.
Youssef Chermiti - 6
Looked the part when things were going Rangers’ way, but when they weren’t, he dropped out of it.
Substitutes: Gassama (Skov Olsen, 69), Rommens (Sterling, 75), Aasgaard (Moore, 75), Naderi (Raskin, 75), Miovski (Diomande, 83). Not used: Kelly, Aarons, Barron, Antman.
Danny Rohl - 6
Set his team out well but had no answers when his opposite number changed it.
Referee: John Beaton - 6



