Celtic left it late to see off Livingston and move back to within three points of leaders Rangers.
The champions trailed to a Rolando Zarate goal for much of the second half but late goals from Momo Sylla and Chris Sutton salvaged the situation.
But it was a victory that came at a cost as top scorer Henrik Larsson went off with a facial injury early on after a clash with Gustavo Bahoken and he was taken to hospital with a suspected broken jaw.
Livingston gave a debut to goalkeeper Alan Main in preference to Dave McEwan but it was Magnus Hedman who was the busier goalkeeper in the early exchanges.
The Swede reacted well to divert a 20-yard free kick from Zarate past his post and he also had to look lively to push a header from Marvin Andrews over his crossbar shortly afterwards.
Main also had to earn his corn and he reacted smartly to keep out a Larsson header, but it was to prove the last piece of action for the Swedish striker who suffered a facial knock getting his effort in.
Celtic dominated the first half but struggled to put Main under any sustained pressure as Livingston defended in depth.
But Celtic were stunned seven minutes into the second half when Zarate put Livingston ahead as he took a pass from Andrews and calmly rounded Hedman before slotting the ball home.
The lively Zarate had another attempt on goal five minutes later but Hedman saved comfortably and the Livingston star was then replaced by Barry Wilson.
Shaun Maloney had a great chance to level in the 69th minute when he was through on Main but sliced his effort wide of the target.
But the equaliser finally arrived seven minutes later when a free kick from Maloney struck the post and was bundled into the net by Sylla.
Celtic produced almost a carbon-copy goal six minutes from time when another Maloney free kick was clawed out by Main but Sutton was waiting to flick the ball into the net for what proved to be the winner.