The Hoops were dumped out of the Europa League at the round-of-32 stage by Danish side FC Copenhagen on Thursday night but did not show the "angry reaction" boss Neil Lennon was looking for in a goalless first half at a blustery McDiarmid Park.
The visitors improved after the break and finally found the breakthrough – just when Tommy Wright's men looked reinvigorated – in the 81st minute, Hoops attacker Ryan Christie curling in a free-kick from wide from which appeared to get straight through and into Zander Clark's net, although defender Christopher Jullien also claimed the goal.
It was Celtic's 34th straight win in a domestic cup competition and, amid their current period of domination in Scotland – the Parkhead club have won the last three Scottish Cup finals – and given Rangers' quarter-final loss to Hearts on Saturday, they will be big favourites to make it four in a row.
Defenders Scott Tanser and Liam Gordon came back into the Saints team which had already lost 7-0 and 3-0 to the Hoops this season and, in wet and windy conditions, they gave as good as they got in the first half after Christie fired wide in the third minute from the edge of the box.
Midfielders Matt Butcher and David Wotherspoon both had efforts for the home side who tried to take the fight to Celtic. In the 12th minute some clever build-up work at the edge of the Saints' box ended with Edouard playing in Callum McGregor, but the midfielder's low drive from 14 yards was stopped by Clark.
After St Johnstone striker Callum Hendry headed a Wotherspoon free-kick just past the post, the Perth keeper saved a tame volley from Edouard at the other end.
Five minutes from the interval there was a rare moment of excitement when Celtic keeper Fraser Forster turned a powerful drive from Drey Wright round the post before tipping Jamie McCart's header from Butcher's corner over the bar, but the home side failed to capitalise.
The away fans, taking up three of the four stands, were more impressed with the start of the second half. Christie and winger James Forrest combined in the St Johnstone box before the latter fired an angled drive wide of the far post, with Edouard curling a shot wide moments later.
Clark then pushed away a left-footed effort from Forrest with Griffiths waiting to pounce, the Hoops striker then slashing a shot high over the bar after another searching run from defender Kristoffer Ajer had opened up the home defence.
As Celtic turned the screw, and before Tom Rogic replaced Griffiths, Christie flashed a shot from 12 yards past the far post. However, Butcher's shot on the turn at the other end, which also went close, was a moment of respite. Back came Celtic and Clark's reaction save from Christie's close-range drive in the 67th minute was quite magnificent.
He then tipped Edouard's back-heel from a Forrest cross on to the post before Parkhead defender Jullien was unable to turn the ball over the line.
It was Celtic's turn to come under pressure but with 10 minutes remaining, after Jamie McCart was booked for a foul on Forrest wide on the right, Christie's curling delivery ended up behind Clark, with Jullien claiming a touch, and Celtic marched on once more.