Match ends, Partick Thistle 1, Celtic 2.
Leigh Griffiths scored his first goal since August as Celtic beat Partick Thistle to record a 32nd consecutive win in domestic cup competition.
Neil Lennon's side eased into the Scottish Cup last 16 at Firhill as they target a fourth consecutive treble.
Callum McGregor added a second after Kenny Miller had earlier rattled a post for the Scottish Championship side.
Thistle scored a late consolation when Dario Zanatta won a penalty, which Stuart Bannigan converted.
But they had no time to try to find a leveller as Celtic secured a place in Sunday's fifth-round draw.
Familiar outcome to humdrum tie
The clash of the top of the Premiership and the next to bottom team in the Championship was never likely to produce an upset. Not with Celtic having won every domestic cup tie they've played in three-and-a-half seasons and every game bar two against Thistle since 1995. The two they didn't win, they drew.
Celtic were never close to their best, but they were too good for hard-working Thistle, who had the consolation of that late penalty. Griffiths got a lucky break for the first goal and McGregor got a fortunate deflection for the second and that was the game.
They owned most of the contest, their only moment of worry before the penalty being a Miller effort that hit a post when the score was still 1-0.
Griffiths had gone into this tie having failed to find the net for nearly five hours, stretching back 13 games and five testing months. He made sure that 13 games did not become 14 games and he did it early.
Only a dozen minutes had been played when he struck. Celtic had lost Nir Bitton to injury by then - Jozo Simunovic replaced him - and had created decent chances for Tom Rogic and Odsonne Edouard, but it was Griffiths who got the job done.
In attempting to deny Rogic of a chance to shoot, James Penrice merely cleared to Griffiths, standing free close to goal. The striker coolly side-footed past Scott Fox to put the champions ahead.
They'll argue - with justification - that they should have been given a chance to make it two not long before the break when Jeremie Frimpong went down in the box after a shove in the back from Penrice. To Frimpong's astonishment, referee Alan Muir ignored the appeal.
Celtic had been in little or no danger until the dying seconds of the half when Thistle broke down the right through Zak Rudden. When his cross came fizzing across goal, Miller turned it on to a post from a tight angle.
It was a scare for the visitors, a reminder that if, in this case Frimpong, went to sleep in defence then the Championship side might get punished.
Lennon's team continued to own the ball but they didn't have the accuracy or the dynamism they so often have.
Christopher Jullien put a header on goal, but Fox was equal to it. McGregor found himself in space on the edge of the box but fired a shot wide. Edouard pulled a free-kick out of the sky and rattled a shot on goal that was touched on to the crossbar by Fox.
The second goal arrived courtesy of McGregor and a nick off Thomas O'Ware that gave Fox no chance of stopping it. At that point, Lennon sent on his new striker, Patryk Kilmala, for his debut. He was soon followed on to the pitch by the lesser-spotted Daniel Arzani for only his second appearance for the club and his first since October 2018.
Thistle got one back at the end when Jullien made a desperate hash of things and gifted Zanatta the chance to run away from him and round Fraser Forster. Frimpong was adjudged to have barged him and Bannigan swept home the penalty to bring an end to a humdrum cup tie.
- 3PenriceBooked at 86mins
- 16MacKinnonSubstituted forSlaterat 59'minutes
- 9MillerSubstituted forHarkinsat 81'minutes
- 23RuddenSubstituted forZanattaat 69'minutes
- 30FrimpongBooked at 90mins
- 6BittonSubstituted forSimunovicat 8'minutes
- 18RogicSubstituted forArzaniat 85'minutes
- 9GriffithsSubstituted forKlimalaat 79'minutes
- Alan Muir
- Shots on Target
Second Half ends, Partick Thistle 1, Celtic 2.
Goal! Partick Thistle 1, Celtic 2. Stuart Bannigan (Partick Thistle) converts the penalty with a left footed shot to the bottom right corner.
Jeremie Frimpong (Celtic) is shown the yellow card for a bad foul.
Penalty conceded by Jeremie Frimpong (Celtic) after a foul in the penalty area.
Penalty Partick Thistle. Dario Zanatta draws a foul in the penalty area.
Foul by Daniel Arzani (Celtic).
Stuart Bannigan (Partick Thistle) wins a free kick on the right wing.
Daniel Arzani (Celtic) wins a free kick on the left wing.
Foul by Thomas Robson (Partick Thistle).
Hand ball by Gary Harkins (Partick Thistle).
James Penrice (Partick Thistle) is shown the yellow card for a bad foul.
Patryk Klimala (Celtic) wins a free kick in the defensive half.
Foul by James Penrice (Partick Thistle).
Substitution, Celtic. Daniel Arzani replaces Tomas Rogic.
Attempt missed. Odsonne Edouard (Celtic) right footed shot from the centre of the box is close, but misses to the left.
Foul by Jeremie Frimpong (Celtic).
Substitution, Partick Thistle. Gary Harkins replaces Kenny Miller.
Attempt saved. Olivier Ntcham (Celtic) left footed shot from outside the box is saved in the bottom left corner.
Substitution, Celtic. Patryk Klimala replaces Leigh Griffiths.