The Irishman cracked in his ninth of the season in a one-sided first half at Parkhead on Sunday, and added two more in as many minutes just after the hour mark as Celtic extended their unbeaten league run to 25 games.
St Johnstone rarely threatened, their talismanic striker Steve May being starved of service throughout as his beleaguered team-mates were often over-run in midfield.
Virgil van Dijk and Kris Commons combined to set up Stokes for the first on 16 minutes, the striker working some space before beating Alan Mannus from 20 yards.
Commons struck the crossbar shortly after as the pressure mounted but the massed ranks of the Saints defence were to hold out until Stokes got to work again.
First Scott Brown (64) picked Stokes out at the back post with a shrewd pass and he swivelled to fire home, and it was 3-0 when Stokes (66) did all the build-up work himself before finding the bottom corner from 16 yards.
Scott Brown struck the base of the post with a low shot, while Derk Boerrigter and Leigh Griffiths wasted chances to increase St Johnstone’s suffering.
Celtic goalkeeper Fraser Forster – barely troubled hitherto – had to call on his reflexes to keep out a deflected Nigel Hasselbaink shot late on, extending his shut-out record in the league to 12 games in the process.
Should Forster keep a clean sheet for the first 30 minutes of the game at Hearts next week – a match you can see live on Sky Sports – he will beat Aberdeen goalkeeper Bobby Clark’s 43-year-old Scottish top flight record.