Player ratings scale - 10: One of best performances you've seen. 9: Outstanding. 8: Very good. 7: Good. 6: Average. 5: Poor, 4: Very poor. 3: Terrible day at office. 2: Abysmal. 1: One of worst performances you've seen.
Made a first-half save from Vakoun Bayo but otherwise didnt look particularly convincing.
Forced off by injury midway through the first half with the match still goalless.
Sign up to our daily newsletter
The i newsletter cut through the noise
A few difficult moments defensively but also showed good composure in dealing with some testing situations.
Made a few crucial interceptions in the first half and booked for foul on Scott Brown. Unable to prevent Bayo converting the third.
Generally held defence together well in first half but unable to stop Bayo bundling in the opener. Made a couple of key tackles late in the game.
Considering the heat and demands of the fixture, the 35-year-old did well to last 90 mins in his first match in almost four months. Helped Hearts keep their shape in first half.
Tried to get on the ball and drive forward when he could. Won the penalty when fouled by Scott Brown but otherwise unable to penetrate the opposition defence to any genuine effect.
Produced some impressive passes at times but generally unable to influence the game in Hearts favour.
Hearts best player. Put in a good shift in attack, but lacked the required support to hurt Celtic. Scored rebound after seeing his penalty saved.
Did a good job of helping Hearts stifle Celtic in the first half but could probably have been stronger in the lead-up to the hosts second. Subbed in 71 mins.
Had a few sporadic moments of promise but unable to get in behind to particularly notable effect.
A tough situation in which to make first appearance of the season but young full-back stuck to his task after replacing Smith early on.
On for last 20 mins, put himself about and helped unnerve a previously comfortable home defence.