The on-loan Coventry midfielder marked his first Scottish Premiership start for Saints with a glorious first-time effort in the 54th minute to hand the visitors a 1-0 victory.
Swanson fired the ball into the top corner from 25 yards.
CELTIC: Gordon, Matthews (Wakaso 46), Denayer, van Dijk, Ambrose, Armstrong, Brown, Mackay-Steven (Forrest 59), Johansen, Stokes (Biton 59),Griffiths.
ST JOHNSTONE: Mannus, Mackay, Easton, Anderson, Scobbie, Millar, Wotherspoon, Davidson, O’Halloran (Miller 77), Swanson (Croft 70), MacLean.
Referee: Calum Murray (Scotland).