Steven Naismith opened the scoring after 19 minutes at Fir Park, before Kyle Lafferty doubled the advantage on the stroke of half-time. Gregg Wylde then wrapped up the victory late on.
The win will act as a much-needed confidence-booster ahead of Thursday's European second leg against Maribor at Ibrox as Rangers attempt to overturn a 2-1 deficit.
David Mackay scored St Johnstone's first Clydesdale Bank Scottish Premier League goal of the season to give the Perth men their first win at Celtic in 13 years.
Peter Enckelman saved Kris Commons' penalty after three minutes and the Saints stopper went on to enjoy a fine afternoon with a string of impressive saves as he kept a clean sheet in the 1-0 triumph.
Mackay's deflected shot on the hour mark sealed a miserable day for the Parkhead side who hit the woodwork through Commons and substitute Paddy McCourt.
Kilmarnock and Hearts shared the spoils after an entertaining but goalless match at Rugby Park.
The hosts created the majority of the chances, beginning with a first-minute James Dayton free kick and further opportunities for Paul Heffernan in each half, plus a close call by Gary Harkins after the break.
Hearts had fewer opportunities on goal but saw Stephen Elliott hit the woodwork at the end of the first half and have the ball in the net on 83 minutes, only to be flagged offside.