Nigel Hasselbaink's equaliser ensured St Johnstone remain unbeaten in the league against Celtic in 2012/13.
Saints keeper Alan Mannus twice denied Gary Hooper early on before Mehdi Abeid hit the side-netting for the hosts.
Celtic took the lead before half-time when Efe Ambrose headed in Emilio Izaguirre's cross from the left.
Both Steven MacLean and Frazer Wright had headed goals ruled offside for the Perth side before Hasselbaink curled beyond Fraser Forster late on.
Celtic were still looking for their first Scottish Premier League win over St Johnstone this season, having lost at McDiarmid Park in September and drawn in Glasgow at the end of October.
And within the opening five minutes Neil Lennon's men had a couple of great chances to get their noses in front.
Mannus saved two Hooper shots with his feet in close succession after the Englishman had been put through by Kris Commons and Charlie Mulgrew respectively.
Celtic's Lassad Nouioui glanced a header wide from Izaguirre's left-wing cross minutes later, underlining the visitors' early dominance.
St Johnstone's first serious threat up-field came on 15 minutes when Michael Doughty clipped a clever ball through for striker MacLean to pursue, but Mulgrew was alert to clear for a corner.
Then on 27 minutes, a lax touch in the box from Ambrose presented Abeid with an opportunity he was not expecting, and perhaps that showed as the Frenchman could only hit the side-netting with his shot from 12 yards.
Celtic immediately went up the park and and Victor Wanyama's precise through ball released Joe Ledley on the left-hand-side of the box and his low left-footed effort was again kept out by Mannus.
Ledley turned provider on 34 minutes, cutting back for Lassad who saw his first-time side-footed shot from six yards cleared by St Johnstone captain Wright.
However, Celtic's pressure finally paid off three minutes later.
A short corner from Commons found Izaguirre on the left, who swung in a cross for Ambrose to head into Mannus's far corner and register his second goal in two games.
Saints' boss Steve Lomas introduced forward Gregory Tade in place of Doughty as they sought a more attacking approach in the second half.
And the Perth side did have the ball in the back of the net on 55 minutes, although MacLean's header from Abeid's free-kick was ruled offside.
On the hour-mark Saints sniffed around the Celtic goal-mouth again.
A long ball was headed down at the back post by Wright for Tade to try to finish off from close-range, but Fraser Forster eventually gathered after fumbling initially.
Then, with the visitors looking increasingly uncomfortable with St Johnstone's renewed energies, another goal was disallowed for the hosts.
The linesman's flag was raised again as Wright's looping header from Craig's free-kick hit the net, even though the defender appeared to be onside.
But in the 82nd minute St Johnstone did get their equaliser.
Abeid fed substitute Hasselbaink on the edge of the box and the Dutchman turned Celtic defender Thomas Rogne before finishing with a delightful curling shot into Forster's far corner.
The visitors reacted immediately as James Forrest's shot flashed wide, then Mannus had to save excellently from Mulgrew's effort which deflected off the head of Craig.
St Johnstone held on to secure the point, though, moving up to fifth place in the SPL.