The Perth side had the better chances and hit the post twice in the dying minutes as they looked to secure a fourth-place finish and a Europa league place.
Celtic had an early chance to open the scoring but Leigh Griffiths was denied his 20th goal of the season by Saints keeper Alan Mannus who blocked his close-range effort.
At the other end Celtic keeper Lukasz Zaluska kept out an effort from Murray Davidson and Hoops defender Efe Ambrose was forced to make a goal-saving clearance to keep out Gary Miller’s header from under the bar.
St Johnstone were having the better of the chances with former Celtic youth team player Michael O’Halloran going close and Zaluska being called into action to beat away a David Wotherspoon’s effort.
But it was Celtic who finished the first-half on top as Scott Brown went close with a header that was cleared off the line by Chris Millar and Griffiths had another effort blocked in the box.
St Johnstone could have taken the lead straight after the interval but Tom Scobbie’s close-range free header was well saved by visiting ‘keeper Zaluska.
Celtic defender Charlie Mulgrew denied O’Halloran with a last ditch tackle in the box before Brown fired his shot over the bar, and Kris Commons sliced his effort wide after good work from Griffiths to create the opening.
O’Halloran continued to be a threat to the Hoops defence as he tested Zaluska with a decent low strike and then hammered a long-range effort over the visitor’s bar.
Both teams had excellent chances to win the game late on, Saints substitute James McFadden hit the post with a header and James Forrest was left holding his head in his hands after he missed an open goal after rounding Mannus.
Murray Davidson thought he had won it for the hosts but watched as his shot hit the post and Mannus then had to be at his best to keep out a shot from Griffiths at the other end.