A Georgios Samaras header and an own goal by Saints midfielder Chris Millar after the break saw off the visitors, whose striker Cillian Sheridan missed a great chance with the game goalless.
Neil Lennon's side need only a draw against Kilmarnock at Rugby Park next Saturday to be crowned champions.
It was a frustrating first half for the home side, where chances were few and far between as they struggled to find a way past an organised St Johnstone side
However, Celtic stepped up a gear after the break and Samaras soon put the Hoops in front. The Greek international headed in from Kris Commons's free-kick before he supplied the cross which Miller diverted into his own net minutes later to secure the three points.
Neil Lennon, who avoided his weekly press conference in the build-up to this game claiming bias in the Scottish press against his side, was forced into making four changes to the team that lost at Rangers.
Cha Du-Ri and Victor Wanyama were both suspended for their red cards against Rangers last week, while James Forrest failed to recover from an ankle injury: Mikael Lustig, Glenn Loovens, Kris Commons and Gary Hooper all came into the starting line-up.
Steve Lomas on the other hand kept with the same team that won at Inverness Caledonian Thistle last week, with new signing and former Bhoy Derek Riordan not fit enough for a place on the bench after joining on a free following his spell in China.
It was a quiet first half with both sides struggling in the final third. There was plenty of good build-up play on display, but there was a lack of quality in the final third.
St Johnstone, playing a 4-4-2, defended in numbers, getting bodies behind the ball and swarming around Celtic’s attackers. Celtic meanwhile were struggling to make the most of their increasing dominance as the opening half went on, failing to break down a rigid visiting defence.
The first real chance of the game fell to Commons after good work from Anthony Stokes. The striker collected the ball on the edge of the area running across goal before slipping a perfectly weighted pass through to Commons who could only drag his angled shot wide of Alan Mannus’s far post.
Commons was involved again soon after, creating the best chance of the opening period. The former Nottingham Forest midfielder delivered a dangerous free-kick into the penalty area where Mannus spilled the ball at the feet of Charlie Mulgrew, who saw his first-time shot cleared off the line by Frazer Wright.
St Johnstone started the second half the better team, going close twice before Celtic sparked into life. Lee Croft and Millar linked-up on the right before Dave Mackay whipped in a perfect cross only to see Sheridan head wide at the near post.
Francisco Sandaza, who turned down a January move to Rangers, went close minutes later. The Spanish striker headed onto the roof of the net following a free-kick from Liam Craig.
Those two chances for the away side sparked Celtic into life when Scott Brown and then Commons had good efforts at goal. The home side then took the lead, shortly after the hour mark.
Samaras won a free-kick mid-way inside the St Johnstone half. Commons delivered an inch-perfect cross and the former Manchester City striker out-jumped three St Johnstone defenders before powering a header into Mannus’s far corner.
Four minutes later and Celtic doubled their lead, securing the three points in the process. St Johnstone were busy appealing for a foul by Commons on Craig when Celtic broke forward. Samaras took the ball down the right and placed a ball right across the face of goal only for it to be diverted into his own net by the unfortunate Millar.
It was a cruel blow for an organised and disciplined St Johnstone side, but their failure to get the ball up to Sheridan and Sandaza often enough was the key reason behind their defeat.
The game petered out after Celtic’s second, though Craig did force Fraser Forster into a good save from a free-kick.
Celtic can now secure the title next weekend against Kilmarnock while St Johnstone miss out on a chance to leapfrog Dundee United in fourth and move into a Europa League position.