Trailing to Tim Clancy's goal at the break Celtic had also survived a missed Stevie May penalty, but they took charge at McDiarmid Park as Kris Commons, Teemu Pukki and Virgil van Dijk scored within 24 second-half minutes.
A win would have left Neil Lennon's side needing to beat Dundee United on Sunday to reach a century of points, but Scott Brown and Michael O'Halloran struck in short order to salvage a draw for Saints.
O'Halloran had begun 90 minutes of enthralling action by shooting against a post from 30 yards, and that set the tone for a half St Johnstone edged.
Clancy redirected Steven Anderson's header on goal to put them ahead (9) and, when O'Halloran was tripped by Beram Kayal, May saw his penalty saved by Lukasz Zaluska.
Lennon, who had given starts to some of his fringe players, sent on Scott Brown and Commons at half-time and was rewarded when a foul on the former allowed the latter to score from the penalty spot (53).
Pukki then prodded Celtic in front from Charlie Mulgrew's cross (73) after Alan Mannus could only help Mikael Lustig's cross back into trouble, and four minutes later van Dijk's sharp first-time volley secured his side's 99th league goal this season.
That appeared to be that, but the Scottish Cup finalists came from nowhere to level as Brown's deflected shot halved the deficit before O'Halloran headed an equaliser from substitute David Wotherspoon's cross.