Celtic moved three points clear at the top of the SPL table after this narrow victory thanks to an Alan Thompson penalty, but the home side will feel they could have done more to improve their goal difference.
As it is, Rangers only need to beat Kilmarnock on Sunday at home by two clear goals to regain the leadership in this tightest of title races.
Hearts started the match full of confidence after their recent victory over the Parkhead side and Javier Sanchez Broto had to produce an excellent save to block Kevin McKenna's drive after Phil Stamp created the opening.
Henrik Larsson then glanced his header wide from a superb Thompson cross. Celtic's top scorer went even closer when he latched onto a long clearance by Bobo Balde, but his shot was deflected for a corner as the Hearts keeper hesitated.
Tepi Moilanen then produced a fingertip save to deny Larsson as he tried to guide Stilian Petrov's shot past him.
Celtic's pressure paid off when the referee awarded a penalty after Steven Pressley, who had been booked minutes earlier, was adjudged to have barged into the back of Chris Sutton. Thompson made no mistake with his spot kick.
Pressley then did well to intercept a Larsson pass just after the break before his keeper rescued his side when he raced from his box to beat Thompson to Larsson's throughball.
Celtic became more anxious as they chased a crucial second goal and their nerves were jangling when substitute Stephen Simmons blazed his shot widely over from close range.
Didier Agathe crashed his shot off the underside off the bar from Neil Lennon's pass five minutes from time, but in the end the home side were grateful just to take the three points.