Tynecastle Park was rocking come Bobby Madden's full-time whistle.
Hearts had taken the lead through Gary Mackay-Steven’s first-half strike. Celtic dominated the ball and got back into the match when Anthony Ralston waltzed through the home side's defence and fired past Craig Gordon.
But John Souttar came up with the goods with barely minutes left on the clock, heading Michael Smith’s cross over Scott Bain. Gordon still had to produce a magnificent save to deny James Forrest.
How did the Hearts players rate out of 10?
Player ratings scale - 10: One of the best performances you've seen. 9: Outstanding. 8: Very good. 7: Good. 6: Average. 5: Poor, 4: Very poor. 3: A terrible day at the office. 2: Abysmal. 1: One of the worst performances you've seen.

5. Stephen Kingsley - 7
Neilson appeared to tell the defender he had to put more pressure on David Turnbull in the first half when the ball was dropped in. Beaten too easily for Celtic’s equaliser. Photo: Paul Devlin - SNS Group

6. Alex Cochrane - 7
Some difficult moments against Abada who is quick, direct and positive, able to go either way but was equal to it. Supported the attack well and nearly scored. Photo: Paul Devlin - SNS Group

7. Beni Baningime - 9
A ball-winning, game-breaking-up machine in the middle of the park. Pitted into a frenetic encounter but it suited him. Put out fires across midfield and when the ball went behind him he was quick to react. Photo: Craig Williamson - SNS Group

8. Andy Halliday - 7
Got through a power of work from side to side and protected the goal with some strong blocks. Passing was wayward at times. Influence waned after the break with Ralston getting goal side of him for the goal. Photo: Ross MacDonald - SNS Group

