Celtic secured a place in the semi-finals of the Scottish League Cup with an eventful triumph over St Johnstone at McDiarmid Park.
Anthony Stokes scored either side of a strike from fellow Irishman Niall McGinn to have the visitors three ahead within 13 minutes.
It should have been a stroll in the park for Neil Lennon's side but they almost contrived to throw away a three-goal lead and ended up hanging on grimly for the final whistle.
Saints striker Sam Parkin reduced the deficit just after the half-hour.
Cha Du-Ri replaced Wilson at right-back and McGinn made his first start of the season. Celtic midfielder Joe Ledley had the ball in the net only to be ruled offside.
In the 31st minute the Hoops' defensive frailties were exposed when Parkin volleyed past Fraser Forster to leave it 3-1 at the break.
In the 54th minute, Saints were right back in it when Murray Davidson powered a header home.
In the 61st minute, Saints might have been level but Parkin's shot was saved by Forster. At the other end, McGinn forced Smith in to a decent save. The Celts, eventually, held on.