An injury time goal from Didier Agathe preserved Celtic's long unbeaten run on home soil after Hearts had looked on course for a famous victory.
Celtic scored twice in the game's dying stages
Hearts went in front after 21 minutes when Kevin McKenna drilled home a lose ball and Mark de Vries added a late second with a low shot from 18 yards.
But Celtic hit back in the 88th minute when Chris Sutton knocked the ball in at the second attempt.
And Agathe crashed home a close range shot deep into time added on.
Hearts made an impressive start and almost made a breakthrough after two minutes when a slick passing move.
culminated with Graham Weir shooting narrowly wide from a tight angle.
Celtic began to find their attacking rhythm but the visitors stood firm with skipper Steven Pressley and Patrick Kisnorbo both making vital blocks to deny Agathe and then Stephen Pearson.
Hearts continued to press forward and were rewarded with the breakthrough goal after 21 minutes.
A Weir shot from the edge of the box struck Stanislav Varga and following up was McKenna to crash a first-time shot past Marshall into the bottom corner.
Going behind sparked the home side into life and Kisnorbo had to block Sutton's drive before keeper Craig Gordon was forced to stop Agathe's effort from inside the box after more Celtic pressure.
Celtic threatened again in the 41st minute when Alan Thompson floated the ball into the box and Stanislav Varga rose to head over from six yards.
Hearts could have doubled their lead in the 42nd minute but Marshall got down smartly to his left to turn another McKenna drive around the post.
Celtic started the second half in brisk fashion and Agathe fired a great ball across the face of goal but Henrik Larsson could not stretch enough to get the vital touch.
Kevin McKenna opened the scoring at Celtic Park
Bobo Balde saw a header fly over the crossbar from a corner and substitute Liam Miller shot narrowly wide from 20 yards as Celtic poured forward.
Larsson then lifted the ball over the top from nine yards after a neat cut-back from Sutton.
The home crowd were stunned after 78 minutes when substitute de Vries turned smartly on the edge of the penalty box and swept the ball home.
Larsson had a shot blocked by Gordon then hit the rebound into the side-netting from an acute angle.
Celtic clawed a goal back two minutes from time when Sutton broke through and had the composure to slot home after Gordon had saved his initial effort.
Celtic thought they had snatched the equaliser moments later when Robbie Neilson cleared Larsson's header off the line and into the hands of Gordon.
De Vries then missed a golden chance to extend Hearts' lead when he completely missed a cross-ball in front of goal with a wild swing of the boot.
And in a frantic close the the game Agathe was on hand to blast high into the net after Varga had flicked the ball into the six yard area.
Celtic: Marshall, McManus, Varga, Balde, McNamara, Agathe, Lambert, Pearson, Thompson, Larsson, Sutton. Subs: McGovern, Petrov, Beattie, Smith, Miller.
Hearts: Gordon, Maybury, Pressley, McKenna, Kisnorbo, Severin, MacFarlane, Hartley, Neilson, Weir, Janczyk. Subs: Moilanen, de Vries, Wyness, Kirk, Berra.
Referee: D McDonald