Ryan Christie's late goal booked holders Celtic's a Scottish Cup semi-final date with Aberdeen at the expense of dogged St Johnstone in Perth.

Ryan Christie's late goal booked holders Celtic's a Scottish Cup semi-final date with Aberdeen at the expense of dogged St Johnstone in Perth.

The midfielder's free-kick from the right beat Zander Clark, with defender Christopher Jullien claiming a touch.

Celtic had pummelled the hosts, Odsonne Edouard striking a post as they sought a 34th-straight domestic cup win.St Johnstone came close through Jamie McCart but ultimately failed to keep the dominant champions at bay.

Neil Lennon's side join Edinburgh clubs Hibernian and Heart of Midlothian as well as their last-four opponents as they pursue a fourth-consecutive domestic treble.

After the anguish of Thursday night and the fury that followed their Europa League exit, Celtic's followers demanded their team rise from the canvas. Another treble is craved - indeed, expected - by a fan base that has grown accustomed to lavish fare and supremacy in Scottish football.

For long spells, they laid siege to the St Johnstone goal, the team who had not beaten the champions since 2016, not scored against them in 10 games and conceded 30 without reply standing firm, their net protected by the outrageously good Clark.

It took time, though, for the tepid opening to sputter into life on a rutted gluepot of a McDiarmid Park pitch. Callum McGregor rasped one straight at goalkeeper Clark. Fraser Forster, in the other goal, leapt to his left to tip away a Drey Wright pile-driver than flicked McCart's header over the bar.

That was the best of a turgid first half. In the second, Celtic began to swagger, at last finding their verve and fluency and delivering some intricate attacking manoeuvres.

James Forrest swept just across the face from one cascading move. Odsonne Edouard steamed into the box, opened his body, and ballooned high into the Celtic fans behind Clark's net. Leigh Griffiths smashed over, Christie hammered wide, then found only the iron chest of Clark from point-blank range after a neat one-two between Edouard and Tom Rogic.

The bombardment continued. From the corner that followed, Edouard's sumptuous back-heel flick struck the near post and the grounded Jullien could not jerk the rebound into the unguarded goal.

Still, the breakthrough was not forthcoming. St Johnstone began to stir and threatened to cause a tremor. Stevie May was beaten to a probing through-ball by Forster, then thundered straight into a defender from 15 yards out when he snuck free in the box. There was even a hopeful shout for a penalty when Scott Tanser tumbled into the quagmire after coming off second-best to Nir Bitton.

No debate, though, about the foul that led to Christie's killer blow. Forrest rampaged up the right flank on the break and was scythed down by McCart. It was a horrid tackle and a costly one. Christie whipped the free-kick into the channel between outfield men and goalkeeper, and into the far corner for his 20th goal of the season, with Jullien galloping away touting himself as the scorer.

St Johnstone, who command a teeny sliver of Celtic's vast purse, pushed the holders hard, no question. This was an ugly, mud-spattered win, but a precious one. Celtic have a propensity to keep going in the cups, to prevail in strife and haul themselves over the line. They're heading back to Hampden and the site of so many glories again.