Hearts retained their three-point lead and confirmed their title credentials as they fought back from behind to leave Glasgow with a deserved point.
Celtic went ahead against the run of play after Craig Beattie thumped the ball into the roof of the net.
A Bobo Balde header struck Hearts' post, but they were quickly level when Rudi Skacel pounced on a mistake by Paul Telfer to roll the ball home.
Some desperate Hearts defending was needed to repel late Celtic pressure.
Celtic manager Gordon Strachan had paired Chris Sutton and Beattie up front with Maciej Zurawski having been injured for Poland in midweek.
Captain Neil Lennon and fellow midfielder Alan Thompson were restored to the starting line-up after suspension and injury respectively.
But it was leaders Hearts who started more brightly, an early Paul Hartley strike from 30 yards forcing Artur Boruc to push the ball over the bar.
Steven Pressley narrowly missed out on an important touch at the back post after Skacel sent a dangerous ball across Celtic's six-yard box.
Top scorer Skacel just failed to direct the ball into the net following another low cross from striker Mikel Pospisil.
But Celtic grabbed the lead against the run of play after 12 minutes through Beattie's seventh goal of the season.
Lennon headed the ball into the path of the young Scotland striker, whose shot deflected past Steve Banks on the goalkeeper's Hearts debut in place of the suspended Craig Gordon.
Celtic came close to extending their lead when Balde's back-post header from a Thompson corner struck the face of a post.
But, just as the Glasgow side looked to be taking control, hesitancy from Telfer allowed Skacel to equalise.
The Celtic defender misjudged a through ball and Skacel stole in to strike the ball against Boruc before rolling his second attempt home.
Robbie Neilson gave Edgaras Jankauskas a chance to put Hearts ahead with a fine through ball, but the striker's lob over Boruc also cleared the crossbar.
Shots from Shunsuke Nakamura and Stilian Petrov flew wide of the Hearts post as Celtic again exerted control.
Hearts started the second half brightly, but Banks had to come to their rescue with a superb save to turn a Telfer drive round the post.
Skacel created a fine opening only to have his effort blocked by Boruc.
Celtic substitute Sean Maloney made an immediate impact after replacing Thompson, curling a free-kick towards the top corner before Banks superbly touched the ball wide of the post.
Jankauskas flicked a header over the bar at the other end.
Sutton headed straight at Banks and substitute John Hartson sent a diving header wide as Celtic finished the stronger side but failed to end Hearts' unbeaten run.
Celtic: Boruc, Telfer, Balde, McManus, Camara, Petrov, Lennon (Hartson 70), Nakamura (Agathe 84), Thompson (Maloney 63), Sutton, Beattie.
Subs Not Used: Marshall, Virgo, McGeady, Wallace.
Booked: Sutton, Thompson.
Goal: Beattie 13.
Hearts: Banks, Neilson, Pressley, Webster, Fyssas, Skacel, Brellier, Hartley, Camazzola, Jankauskas, Pospisil (Elliot 78).
Subs Not Used: MacDonald, McAllister, Simmons, Mikoliunas, Wallace, Tall.
Booked: Skacel, Pressley, Brellier.
Goal: Skacel 16.
Ref: D McDonald