Celtic overcame Dundee with three second-half goals to move five points clear at the top of the Scottish Premiership.
Liam Scales, Kyogo Furuhashi, Matt O'Riley and Luis Palma all went close for Brendan Rodgers' side during a profligate first half.
Paulo Bernardo nicked the ball past Trevor Carson to give the visitors the lead - a first Celtic goal for the midfielder - and substitute Mikey Johnston's late double made sure of victory.
Second-placed Rangers have two games in hand over Celtic and will play one of those matches before the second Old Firm derby of the season at Celtic Park on Saturday.
Dundee offered little in attack and remain seventh prior to Wednesday's five top-flight fixtures.
Reaction & as it happenedKeep up to date with DundeeThe latest Celtic newsAn early Cameron Carter-Vickers header then a Bernardo shot gave Dundee cause for concern and Palma pounced on a stray ball to curl an effort high and wide.
Scales went even closer when he nodded wide and Kyogo really should have broken the impasse when he ran on to O'Riley's excellent long ball and clipped wide.
O'Riley tried himself moments later, his shot narrowly missing the post, and another Carter-Vickers headed bounced out. Palma tried again with a header but knocked wide.
The pattern continued after the break with Greg Taylor unable to bury a chance at a corner.
But the deadlock would be broken. Palma's through ball sent Bernardo into the inside left channel and the slightest of touches took the ball between Carson's legs into the net.
Dundee had to get more bodies forward and Celtic survived faint penalty appeals for handball after ricochets off Greg Taylor and Carter-Vickers' replacement Stephen Welsh.
Luke McCowan was then unfortunate to see a shot deflect out.
Oh Hyeon-gyu tried to swerve a low shot into the right corner but the Celtic sub could not get the required bend.
However, any doubts over the outcome were extinguished when Johnston - on for Palma - struck from the left and Carson could not get enough of his body in the way.
Carson atoned for that somewhat moments later, tipping a fierce Johnston effort out for a corner, but he could do nothing as Johnston shot low from closer in on the left for Celtic's third.
And the winger may have had a hat-trick, a swirling shot flashing wide deep into added time.
Player of the match - Luis Palma
Most of Celtic's best moments came on Luis Palma's side, the left, and it was his pass that created the opening goal for Paulo Bernardo (right)Persistence pays off for Celtic - analysis
The amount of chances the visitors carved, particularly on the left, encouraged them to keep at it and their persistence paid off with the Bernardo goal.
However, a second-half injury to Carter-Vickers will be a frustration given Rangers' impending visit.
Dundee's counter-attacking game did not create too many openings, though a looping Zak Rudden header forced Celtic goalkeeper Joe Hart to retreat and catch in the opening half.
Defensively, the Dark Blues were often effective in getting in blocks to repel both shots and crosses and it's easy to see why Tony Docherty's side find themselves in a comfortable mid-table position.
What the managers said
Dundee manager Tony Docherty: "I was happy with the first-half performance. They made those runs down the side and we succumbed to that. When Celtic get their tails up like that it's difficult. You can see the quality they are bringing on off the bench.
"That won't define our season, our reaction to it will define our season. It is important we bounce back from today, it's difficult for the players but they've shown us a real consistent level of performance this season."
Celtic manager Brendan Rodgers: "I thought we played very well. It was an outstanding team performance. The ambition of the players was great. We controlled the game, controlled the rhythm.
"Anything we had to do defensively - long throws, long balls - we dominated that moment and kept the clean sheet, which is also important."
What's next?
Celtic host Rangers on Saturday (12:30 GMT) with Dundee away to Kilmarnock later that day (15:00).
Line-ups
Dundee
Formation 3-5-2
31Carson6McGhee5Shaughnessy25Donnelly2Kerr10CameronSubstituted forRobertsonat 73'minutes23BoatengSubstituted forSyllaat 85'minutes17McCowan3BeckBooked at 86mins9BakayokoSubstituted forRobinsonat 68'minutesSubstituted forHowleyat 84'minutes20RuddenSubstituted forTiffoneyat 69'minutesSubstitutes
1Legzdins7Tiffoney11Pineda14Ashcroft15Mulligan16Robinson19Robertson21Howley28SyllaCeltic
Formation 4-3-3
1Hart2Johnston20Carter-VickersSubstituted forWelshat 55'minutes5ScalesBooked at 13mins3Taylor33O'Riley42McGregor28Gonçalves Bernardo38MaedaSubstituted forYangat 66'minutes8FuruhashiSubstituted forOhat 66'minutes7PalmaSubstituted forJohnstonat 79'minutesSubstitutes
13Yang14Turnbull19Oh22Kwon29Bain49Forrest56Ralston57Welsh90JohnstonReferee:Don Robertson
Attendance:9,144
Live Text
Match ends, Dundee 0, Celtic 3.
Second Half ends, Dundee 0, Celtic 3.
Attempt missed. Mikey Johnston (Celtic) right footed shot from outside the box is close, but misses to the right. Assisted by Greg Taylor.
Foul by Oh Hyeon-Gyu (Celtic).
Jordan McGhee (Dundee) wins a free kick in the defensive half.
Corner, Celtic. Conceded by Jordan McGhee.
Attempt blocked. Oh Hyeon-Gyu (Celtic) right footed shot from the centre of the box is blocked. Assisted by Alistair Johnston with a cross.
Attempt missed. Oh Hyeon-Gyu (Celtic) right footed shot from the right side of the box is close, but misses to the left. Assisted by Alistair Johnston.
Attempt missed. Finlay Robertson (Dundee) left footed shot from outside the box is high and wide to the left. Assisted by Mohamad Sylla.
Goal! Dundee 0, Celtic 3. Mikey Johnston (Celtic) right footed shot from the centre of the box to the bottom right corner.
Attempt missed. Yang Hyun-Jun (Celtic) header from the right side of the six yard box is high and wide to the left. Assisted by Matt O'Riley with a cross following a corner.
Corner, Celtic. Conceded by Trevor Carson.
Attempt saved. Mikey Johnston (Celtic) right footed shot from the left side of the box is saved in the top right corner. Assisted by Greg Taylor.
Attempt saved. Oh Hyeon-Gyu (Celtic) left footed shot from the left side of the box is saved in the centre of the goal. Assisted by Paulo Bernardo.
Corner, Celtic. Conceded by Aaron Donnelly.
Owen Beck (Dundee) is shown the yellow card for a bad foul.
Yang Hyun-Jun (Celtic) wins a free kick on the right wing.
Foul by Owen Beck (Dundee).
Substitution, Dundee. Mohamad Sylla replaces Malachi Boateng.
Substitution, Dundee. Ryan Howley replaces Zach Robinson because of an injury.
Player of the match
JohnstonMikey Johnston
with an average of 7.61
Dundee
Squad number19Player nameRobertson
Squad number3Player nameBeck
Squad number7Player nameTiffoney
Squad number17Player nameMcCowan
Squad number9Player nameBakayoko
Squad number23Player nameBoateng
Squad number2Player nameKerr
Squad number28Player nameSylla
Squad number20Player nameRudden
Squad number21Player nameHowley
Squad number6Player nameMcGhee
Squad number10Player nameCameron
Squad number5Player nameShaughnessy
Squad number25Player nameDonnelly
Squad number16Player nameRobinson
Squad number31Player nameCarson
Celtic
Squad number90Player nameJohnston
Squad number7Player namePalma
Squad number28Player namePaulo Bernardo
Squad number33Player nameO'Riley
Squad number42Player nameMcGregor
Squad number5Player nameScales
Squad number20Player nameCarter-Vickers
Squad number2Player nameJohnston
Squad number3Player nameTaylor
Squad number1Player nameHart
Squad number57Player nameWelsh
Squad number13Player nameYang Hyun-Jun
Squad number38Player nameMaeda
Squad number8Player nameFuruhashi
Squad number19Player nameOh Hyeon-Gyu