It wasn’t quite as painful as last time around but James Forrest still piled on the misery for St Johnstone at McDiarmid Park.
Back on October 6, the Scotland star rattled in four goals as the Hoops hit six without reply.
This time around, Forrest was restricted to only one by a decent home performance but it was the strike that mattered.
It arrived on 78 minutes and put an end to what had hitherto been a defiant defensive display by the Perth men, who played much better than they did at Celtic Park last midweek.
The visitors then rounded it off with a brilliant second goal on the break just two minutes from time, scored by substitute Timothy Weah.
By then, Forrest was off the park after suffering what looked like a hamstring injury, while teammate Kris Ajer joined him in the dressing room late on after being red-carded for a last-gasp foul on home sub Callum Hendry.
Saints had made four changes to the side that kicked off that 2-0 loss at Parkhead.
Most notably, there was a debut for midfielder Sean Goss after he signed on loan from Queens Park Rangers.
The three Wednesday night subs – Ross Callachan, Matty Kennedy and Tony Watt – were all promoted.
That meant there was no room for Blair Alston, Liam Craig, David Wotherspoon and Michael O’Halloran.
The hosts were desperate to play better than they did four days earlier, never mind avoid a repeat of that horrible half-dozen in the autumn.
The Hoops, who were unchanged, hoped to extend their lead over Rangers at the top of the Premiership to six points, while a win for Tommy Wright’s sixth-placed side would give them an eight-point cushion over Hibs below them.
Just seconds into the game, there was concern over Celtic’s Ajer after he came off worse in a clash of heads with Watt. After a few minutes of treatment to his chin, thankfully he returned to the action.
The first chance of the game – and a good one at that – fell to the hosts after just five minutes. Kennedy should have sent his shot from close range flying past keeper Scott Bain after battering his way towards goal but instead the former Dundee number one saved with his feet.
The McDiarmid men were looking sharp going forward and came close again on 12 minutes.
Kennedy played Scott Tanser in up the left and his low cross was met by the boot of Watt. The striker’s shot wasn’t too far wide of Bain’s right-hand post.
There was a claim for a penalty from the Celts on 14 minutes when Saints’ Jason Kerr slid in to challenge Ollie Burke after a mix-up at the back. However, referee Willie Collum signalled, correctly, that the defender had won the ball and waved played on.
The visitors came pretty close to a goal on 27 minutes at a setpiece. The ball was floated to the back post by Ryan Christie and Ajer’s looping header almost sneaked in.
Saints survived a serious scare on 33 minutes when burke set off on a terrific run up the left. The Parkhead player looked as if he had run out of space after cutting in but still managed to get the ball across from the tightest of angles, only for goalie Clark to parry then Richard Foster hack the ball away from close to the goalline.
St Johnstone’s Goss delivered a freekick – awarded for yet another foul committed by Emilio Izaguirre – into the box at the end of the first half but the combination of Kennedy and Davidson failed to trouble Bain.
The visitors made a change at the interval, bringing on new signing Jeremy Toljan for Mikael Lustig.
Clark was the hero for the hosts on 49 minutes when he dived to keep out Burke’s well-struck shot.
The match swung to the other end a couple of minutes later as Saints passed up a wonderful chance to grab the lead.
Kennedy pinged the ball to the back post and it looked to be ideal for Watt but the big man took his eye off the ball and couldn’t get his head to the cross.
The home team made their first change on 64 minutes, bringing on Wotherspoon for Danny Swanson, then the Hoops brought on Odsonne Edouard for Burke.
Celtic were pushing hard for the breakthrough now and Clark had to look alert to save from Jozo Simunovic before Christie fired wide from 20 yards.
There was some heroic defending from the hosts on 71 minutes when Foster and then Joe Shaughnessy combined to keep the ball out of their own net, with Scott Sinclair denied the goal.
Sub Edouard was then subbed three minutes later after getting injured in the goalmouth stramash, with Weah coming on. Saints brought on another sub – O’Halloran for Kennedy – then fell behind on 78 minutes.
Just as he was when they hit six here in October, Forrest was the hero for the Hoops.
It wasn’t the greatest of defending from the hosts, with Tanser standing like a statue at the back post while the Scotland international nipped in to stab Weah’s cross from the left over the line from a yard out.
Hendry for Goss was the hosts’ last throw of the dice on 82 minutes.
It was game over, though, on 88 minutes when Sinclair raced forward before playing the ball left to Callum McGregor. It was three versus one on the break and McGregor slid the ball across the face of goal for Weah to slam it home.
By this time Celtic were down to 10 men because Forrest had to come off injured. They were then down to nine for the closing few seconds after Ajer pulled down Saints’ Hendry in full flight and was shown the red card.
St Johnstone: Clark, Tanser, Shaughnessy, Davidson, Swanson (Wotherspoon 64), Kerr, Foster, Goss, Callachan, Watt, Kennedy (O’Halloran 77). Subs not used: Bell, Hendry, Gordon, Craig, Keown.
Celtic: Bain, Lustig (Toljan 46), Simunovic, Ajer, Izaguirre, Brown, Christie, McGregor, Forrest, Burke (Edouard 65, rep by Weah 74), Sinclair. Subs not used: Gordon, Bitton, Hayes, Johnston.
Referee: Willie Collum.