St Mirren produced a stunning upset as they beat Celtic 3-2 in an action-packed Scottish Communities League Cup semi-final at Hampden Park.
Celtic youth product Paul McGowan and Steven Thompson were on target in the second half as they made the most of Charlie Mulgrew's missed penalty to secure a second Hampden date against Hearts in March.
If Celtic thought they were in for an easy afternoon, they were given a wake-up call in the eighth minute when Esmael Goncalves marked his St Mirren debut by getting between two defenders to nudge a low volley past Lukasz Zaluska.
Celtic started to take control as the opening 45 minutes wore on with in-demand striker Gary Hooper unlucky not to get them level when his effort came back off the bar.
A Giorgios Samaras header also beat Craig Samon and rebounded to safety off the woodwork but Celtic remained vulnerable at the back at times, with a chip by the lively Goncalves drifting just wide.
St Mirren were dealt a huge blow in the closing seconds of the half when Hooper levelled the scores, getting on the end of Scott Brown's cross to tap home from close range after twice being involved in a flowing Celtic move.
Celtic passed up the chance to take the lead on 49 when Buddies captain Jim Goodwin was pulled up for an unlucky handball in the area, but Charlie Mulgrew's penalty - hit at a nice height for any keeper - was turned aside by Samson.
Joe Ledley's shot on the turn dipped inches over the bar as Neil Lennon's side continued to press but Mulgrew's nightmare continued on 64 when he blocked a fierce cross with his hands and McGowan made no mistake from 12 yards.
Worse would follow for Celtic three minutes later when Thompson made it 3-1 with a delightful 12-yard diving volley from a Marc McAusland centre, and Gary Teale was only denied a fourth from long-range by a decent Zaluska parry.
Samson spread himself wide to deny sub Mikael Lustig the chance to pull one back as Celtic pressed, more in desperation than hope, and Ledley's header flashed inches over the bar.
Mulgrew fired home from 25 yards with the last kick of the game but that was as close as Celtic got and the final whistle brought to an end a run of eight straight St Mirren defeats against the SPL champions, setting them up for another chance of winning the competition for the first time in their history, having lost to Rangers in their most recent final in 2009-10.