Benjamin Nygren struck twice as Celtic won 4-2 at Livingston after twice equalising in a frantic opening 10 minutes.
Left-back Cristian Montano twice put Livi ahead only for Nygren and Yang Hyun-jun to equalise.
The Sweden midfielder put Celtic in front in the 31st minute and an Arne Engels penalty gave them some breathing space before the break.
Bottom club Livingston, who have now gone 17 matches without a win, continued to trouble Celtic’s back three but Wilfried Nancy’s team did enough to seal a second consecutive win and cut the gap on William Hill Premiership leaders Hearts to three points with a game in hand.
Nancy only made one change following his first win, against Aberdeen, but it was a significant one. Finland goalkeeper Viljami Sinisalo was handed his first league appearance of the season as Kasper Schmeichel made way after conceding 11 goals in Nancy’s first five matches in charge.
Sinisalo was picking the ball out of the net inside three minutes after Montano picked up a loose inside pass from Kieran Tierney, drove forward, shrugged off a challenge from Yang, went past Anthony Ralston and fired a shot in off the near post.
It was the first time Livi were ahead for two months, but the lead only lasted three minutes as Celtic levelled following an Engels corner. Daizen Maeda won the first contact and Nygren peeled off his marker to knock home from close range.
Livi were back in front two minutes later as they attacked with numbers. Montano had time to let Scott Pittman’s cross bounce before unleashing a powerful volley high into the net.
Celtic again responded immediately. Livingston could not clear Maeda’s low cross and Yang emerged with the ball from a goalmouth scramble and knocked it over the line.
Celtic had a scare before taking control when Auston Trusty came to Ralston’s rescue after the Scotland defender lost possession to Tete Yengi.
Yang twice came close following good wing play from Luke McCowan before a long spell of possession ended with Nygren whipping a shot in off the far post. The Swede had only one thought on his mind when he received Tierney’s pass just inside the box and delivered his 10th Celtic goal.
Celtic were handed a VAR-assisted 39th-minute penalty when referee Matthew MacDermid ruled that Engels’ corner had struck the arm of Daniel Finlayson as the defender tried to head clear. The Belgian sent Jerome Prior the wrong way from the spot.
The visitors finished the half under pressure from a series of set pieces. Sinisalo made an unconvincing clearance from May’s free-kick and Montano was among the home players to threaten with a deflected effort.
Home boss David Martindale threw on striker Jeremy Bokila for Lewis Smith and chances fell at both ends in the opening stages of the second half.
Montano and Macaulay Tait passed up good opportunities to shoot while Celtic striker Johnny Kenny produced a weak effort from a decent chance and Callum McGregor had a shot saved.
McCowan twice threatened but Livingston were causing problems down the sides. Bokila flashed a shot wide and could not reach Tait’s inviting low cross before Sinisalo parried Montano’s powerful effort.
The introduction of Colby Donovan, Paulo Bernardo and Reo Hatate settled Celtic down and the latter had a shot saved but Livi substitute Robbie Muirhead missed a good chance to set up a grandstand finish.
Subscribe or register today to discover more from DonegalLive.ie
Buy the e-paper of the Donegal Democrat, Donegal People's Press, Donegal Post and Inish Times here for instant access to Donegal's premier news titles.
Keep up with the latest news from Donegal with our daily newsletter featuring the most important stories of the day delivered to your inbox every evening at 5pm.