Dutch defender Virgil van Dijk scored a wonderful solo goal in the fifth minute as the effervescent visitors took a firm hold of the first half without adding to their lead.
The home side came into the game after the break to make it more interesting encounter but the champions did enough to take the three points back to Glasgow
Neil Lennon's men go on to Inverness on Sunday looking to extend their unbeaten run in the league to 18 matches, with the Hoops manager hoping they can replicate an impressive first-half performance.
Adam Matthews returned to the Celtic side after recovering from a fever and Georgios Samaras also came back into the fold as midfielder Nir Biton and striker Teemu Pukki dropped to the bench.
Patrick Cregg appealed the red card he picked up against Hibernian last week but he was left on the bench as Brian Easton, Nigel Hasselbaink and Gary Miller came into the home side, with Tom Scobbie and Gwion Edwards starting on the bench and Chris Millar left out.
Fans had originally been banned by the police from bringing in flags and banners due to the fear of them being used to smuggle in flares and fireworks. However, after much confusion, the ban was overturned and it was the away fans who added the most colour to the atmosphere which was cranked up after the champions took the early lead.
The Hoops' goal came when Van Dijk, having earlier stopped Saints striker Stevie May getting through on goal, decided to go on a solo run through the middle of the park after taking possession 10 yards inside his own half.
The Dutchman eased past a series of blue shirts, all of whom were reticent in the tackle, before toe-poking the ball past Alan Mannus from 10 yards out.
Lennon's men kept probing the Saints defence, which creaked any time the ball came into the box, but as the first half wore on the pressure eased.
Mannus had little problem dealing with header from Anthony Stokes just after the half-hour mark, by which time the Perth side had composed themselves.
Moments later Stokes blasted a volley from 16 yards over the bar before play moved up to the other end with St Miller's goal-bound drive blocked by Emilio Izaguirre.
Stokes then lobbed the ball over past Mannus at the edge of the box but was crowded out by Saints defenders Frazer Wright and Sanel Janic before Wright blocked the Irishman's shot for a corner, which came to nothing.
With a minute of the first half remaining Stokes put in Kris Commons with a clever pass but Mannus was quick off his line to block for another corner which failed to bear fruit for the champions.
Moments into the second half Easton cleared a great cross from Stokes from a couple of yards out and it looked like the visitors would continue to boss the game.
Celtic winger James Forrest then replaced Matthews before a cross-cum-shot from May zipped past Fraser Forster's far post, signalling, at last, some offensive intent from the home side.
There was a St Johnstone penalty claim in the 57th minute when Van Dijk appeared to put his hand across May to block the striker getting on the end of a Murray Davidson cross but referee Craig Thomson waved play on to the anger of the home fans.
The game was much more even and intriguing by that point.
Moments later, Hasselbaink set up Easton on the left-hand side of the box but the left-back's shot was blocked by Van Dijk for a corner which Celtic defended.
Celtic knew one slip could let the Perth side back into the match and in the 77th minute Forster was asked to deal with a fiery drive from Saints substitute Edwards, who had replaced Miller.
A minute later, at the other end, Hoops midfielder Joe Ledley's cross from the left was driven on the half-turn by Commons towards the bottom corner with Mannus diving low to his right to make a fantastic save.
Play switched from end to end in the final stages with St Johnstone pressing for the leveller but Forster was not unduly worried as the Parkhead men saw out four added minutes.