Celtic moved six points clear at the top of the Premiership with an assured victory over St Johnstone.
The defending champions were efficient as they took control with first-half goals from Gary Mackay-Steven and Stuart Armstrong.
St Johnstone briefly rallied, and tied the game at 1-1 when Steven MacLean equalised.
But they had no answer to Celtic's growing authority and Mackay-Steven netted again after the break.
St Johnstone's resistance lasted only nine minutes, though they may consider that a feat given how ruthlessly Celtic dispatched Hamilton 8-1 in midweek with three early goals.
Few defences have found the means to curtail Leigh Griffiths this season and, after his effort was blocked, Mackay-Steven darted through to drive past Alan Mannus.
The visitors from Perth did not allow their sprightliness to be subdued by the circumstances and Michael O'Halloran's pace could not be contained.
He may yet complete a move to Rangers but he was focused in Glasgow and skipped past Kieran Tierney to cross for MacLean to finish from close range.
Frustration might have set in for the home side but Armstrong was brilliantly accurate and composed as he swept a first-time volley into the net from Mikael Lustig's cross.
Another goal after the break finally quelled St Johnstone's spirit. Johansen's pass might have been aimed at Griffiths, but the ball fell perfectly into Mackay-Steven's stride for him to finish with cool aplomb.
The display was sound from Celtic, and scattered with the promise of their youthful attacking players.
Though over elaborate, Celtic dominated possession and Mackay-Steven, Griffiths and Callum McGregor all impressed in the final third, while debutant Ryan Christie replaced Armstrong late on.
The standout Celtic player was Tierney, though, who played with a depth of composure and awareness that sets him apart in defence and attack.
There were other half-chances, so that the scoreline might better have reflected Celtic's hold in the game, but also a clearance off his own goal-line from Johansen.
St Johnstone never lost heart, but the gap in quality could not be breached.
Full Time Match ends, Celtic 3, St. Johnstone 1.
90:00 +2:11 Full timeFull Time Second Half ends, Celtic 3, St. Johnstone 1.
90:00 +0:36Foul by Ryan Christie (Celtic).
90:00 +0:36Liam Craig (St. Johnstone) wins a free kick in the defensive half.
87:28 SubstitutionSubstitution Substitution, Celtic. Ryan Christie replaces Stuart Armstrong.
87:10Attempt missed. Michael O'Halloran (St. Johnstone) left footed shot from the centre of the box is close, but misses to the left.
85:38 SubstitutionSubstitution Substitution, Celtic. James Forrest replaces Gary Mackay-Steven.
85:24Foul by Scott Allan (Celtic).
85:24Joe Shaughnessy (St. Johnstone) wins a free kick in the defensive half.
81:50Attempt saved. David Wotherspoon (St. Johnstone) header from the centre of the box is saved in the centre of the goal.
80:20Attempt saved. Leigh Griffiths (Celtic) header from the right side of the six yard box is saved in the bottom right corner.
78:35 SubstitutionSubstitution Substitution, Celtic. Scott Allan replaces Callum McGregor.
75:55Attempt missed. Callum McGregor (Celtic) left footed shot from the left side of the box misses to the right.
74:54Attempt saved. Gary Mackay-Steven (Celtic) left footed shot from the centre of the box is saved in the centre of the goal.
74:10Foul by Jozo Simunovic (Celtic).
74:10Michael O'Halloran (St. Johnstone) wins a free kick in the defensive half.
72:28Foul by Leigh Griffiths (Celtic).
72:28Tam Scobbie (St. Johnstone) wins a free kick in the attacking half.
71:59Attempt missed. Brian Easton (St. Johnstone) left footed shot from outside the box is too high.
69:15Foul by Nir Bitton (Celtic).
Michael O'Halloran (St. Johnstone) wins a free kick in the attacking half.
68:28 SubstitutionSubstitution Substitution, St. Johnstone. Liam Caddis replaces Murray Davidson.
67:35Foul by Mikael Lustig (Celtic).
67:35Brian Easton (St. Johnstone) wins a free kick on the right wing.
66:35Attempt missed. Leigh Griffiths (Celtic) left footed shot from the right side of the box is just a bit too high.
65:14Kieran Tierney (Celtic) wins a free kick on the right wing.
65:14Foul by John Sutton (St. Johnstone).
64:54 SubstitutionSubstitution Substitution, St. Johnstone. John Sutton replaces Steven MacLean.
64:28Attempt saved. Gary Mackay-Steven (Celtic) left footed shot from the right side of the six yard box is saved in the bottom left corner.
63:36Attempt saved. Leigh Griffiths (Celtic) left footed shot from outside the box is saved in the top centre of the goal.
62:22Foul by Efe Ambrose (Celtic).
62:22Steven MacLean (St. Johnstone) wins a free kick in the attacking half.
61:49Corner, Celtic. Conceded by Steven Anderson.
61:10Attempt saved. Steven MacLean (St. Johnstone) right footed shot from the centre of the box is saved in the centre of the goal.
60:21Corner, St. Johnstone. Conceded by Leigh Griffiths.
59:54Corner, St. Johnstone. Conceded by Jozo Simunovic.
59:23Attempt saved. Leigh Griffiths (Celtic) right footed shot from the right side of the box is saved in the bottom left corner.
59:09Attempt saved. Stuart Armstrong (Celtic) right footed shot from the right side of the six yard box is saved in the bottom right corner.
57:31Foul by Kieran Tierney (Celtic).
57:31Steven MacLean (St. Johnstone) wins a free kick in the defensive half.
56:31Attempt missed. Callum McGregor (Celtic) right footed shot from outside the box is close, but misses to the right.
56:05Stefan Johansen (Celtic) wins a free kick on the left wing.
56:05Foul by Liam Craig (St. Johnstone).
54:19 Goal scoredGoal! Goal! Celtic 3, St. Johnstone 1. Gary Mackay-Steven (Celtic) left footed shot from the centre of the box to the bottom left corner. Assisted by Stefan Johansen.
52:35Hand ball by Gary Mackay-Steven (Celtic).
49:49Attempt missed. Leigh Griffiths (Celtic) right footed shot from the centre of the box is just a bit too high.
49:35Attempt saved. Gary Mackay-Steven (Celtic) left footed shot from outside the box is saved in the centre of the goal.
48:38Foul by Callum McGregor (Celtic).
48:38Murray Davidson (St. Johnstone) wins a free kick in the attacking half.
47:48Kieran Tierney (Celtic) wins a free kick on the right wing.
47:48Foul by Steven MacLean (St. Johnstone).
46:12Foul by Stuart Armstrong (Celtic).
46:12Michael O'Halloran (St. Johnstone) wins a free kick in the attacking half.
45:00Second Half begins Celtic 2, St. Johnstone 1.
45:00 SubstitutionSubstitution Substitution, St. Johnstone. Liam Craig replaces Graham Cummins.
45:00 +2:26 Half timeHalf Time First Half ends, Celtic 2, St. Johnstone 1.
45:00 +1:46 BookingBooking Murray Davidson (St. Johnstone) is shown the yellow card.
45:00 +1:16 BookingBooking Joe Shaughnessy (St. Johnstone) is shown the yellow card for a bad foul.
45:00 +1:07Stefan Johansen (Celtic) wins a free kick in the defensive half.
45:00 +1:07Foul by Joe Shaughnessy (St. Johnstone).
45:00 +0:13Attempt saved. David Wotherspoon (St. Johnstone) left footed shot from outside the box is saved in the bottom right corner.
42:59 Goal scoredGoal! Goal! Celtic 2, St. Johnstone 1. Stuart Armstrong (Celtic) right footed shot from the left side of the box to the bottom right corner. Assisted by Mikael Lustig.
42:32Attempt saved. Callum McGregor (Celtic) right footed shot from the centre of the box is saved in the top left corner.
38:40Corner, Celtic. Conceded by Tam Scobbie.
36:16Efe Ambrose (Celtic) wins a free kick in the defensive half.
36:16Foul by Steven MacLean (St. Johnstone).
35:10Efe Ambrose (Celtic) wins a free kick in the defensive half.
35:10Foul by Graham Cummins (St. Johnstone).
34:40Foul by Efe Ambrose (Celtic).
34:40Steven MacLean (St. Johnstone) wins a free kick in the defensive half.
34:00(St. Johnstone) wins a free kick in the attacking half.
33:46Foul by Leigh Griffiths (Celtic).
33:27Attempt saved. Gary Mackay-Steven (Celtic) left footed shot from outside the box is saved in the centre of the goal.
32:45Foul by Callum McGregor (Celtic).
32:45Murray Davidson (St. Johnstone) wins a free kick in the attacking half.
29:13Stefan Johansen (Celtic) wins a free kick in the defensive half.
29:13Foul by David Wotherspoon (St. Johnstone).
26:45Attempt missed. Gary Mackay-Steven (Celtic) left footed shot from the centre of the box is close, but misses the top left corner.
26:02Stefan Johansen (Celtic) wins a free kick in the attacking half.
26:02Foul by David Wotherspoon (St. Johnstone).
21:34Foul by Leigh Griffiths (Celtic).
21:34Graham Cummins (St. Johnstone) wins a free kick in the attacking half.
17:17Corner, Celtic. Conceded by Brian Easton.
16:04Attempt saved. Steven MacLean (St. Johnstone) right footed shot from the right side of the box is saved in the bottom right corner.
14:27Nir Bitton (Celtic) wins a free kick in the attacking half.
14:27Foul by Steven Anderson (St. Johnstone).
13:37Foul by Stefan Johansen (Celtic).
13:37Michael O'Halloran (St. Johnstone) wins a free kick in the defensive half.
12:33Attempt saved. Nir Bitton (Celtic) right footed shot from outside the box is saved in the bottom left corner.
11:06 Goal scoredGoal! Goal! Celtic 1, St. Johnstone 1. Steven MacLean (St. Johnstone) right footed shot from very close range to the centre of the goal. Assisted by Michael O'Halloran.
10:33Attempt saved. Stuart Armstrong (Celtic) left footed shot from the left side of the six yard box is saved in the bottom left corner.
9:20Callum McGregor (Celtic) wins a free kick in the defensive half.
9:20Foul by Murray Davidson (St. Johnstone).
8:12 Goal scoredGoal! Goal! Celtic 1, St. Johnstone 0. Gary Mackay-Steven (Celtic) left footed shot from the centre of the box to the bottom left corner.
8:07Attempt blocked. Leigh Griffiths (Celtic) right footed shot from outside the box is blocked.
4:15Foul by Simon Lappin (St. Johnstone).
4:15Mikael Lustig (Celtic) wins a free kick in the defensive half.
2:42Foul by Mikael Lustig (Celtic).
2:42Michael O'Halloran (St. Johnstone) wins a free kick in the attacking half.
1:26Foul by Leigh Griffiths (Celtic).
1:26Steven Anderson (St. Johnstone) wins a free kick in the attacking half.
0:00First Half begins.
0:00Lineups are announced and players are warming up.
Live data and text provided by our data suppliers