St Mirren stunned tournament favourites Celtic with victory at Hampden to set up a Scottish Communities League Cup final meeting with Hearts.
Esmael Goncalves marked his Buddies debut with the opening goal, only for Gary Hooper to level before half-time.
Charlie Mulgrew had a penalty saved before conceding the spot-kick that gave St Mirren the lead a second time.
Paul McGowan scored from 12 yards and Steven Thompson netted a stylish volley before Mulgrew's late consolation.
The Paisley side will return to Scotland's national stadium in March to meet
Having not scored against Celtic in their previous eight meetings, Danny Lennon's side belied their underdog status with an incisive opener in the eighth minute.
Conor Newton dinked the ball towards the six-yard box and Goncalves' outstretched foot directed the ball in off the post.
St Mirren took great confidence from their goal and John McGinn tested Lukasz Zaluska with fierce low drive.
Celtic gradually steadied themselves and opened up their opponents with consummate ease when Joe Ledley combined with his captain Scott Brown.
The skipper nutmegged Jim Goodwin as he skipped towards goal but Marc McAusland did enough to deflect the shot out of play.
Hooper came even closer for Neil Lennon's side when he superbly controlled a long ball and rattled the top of the crossbar with a measured volley.
Victor Wanyama and Georgios Samaras were both off target with efforts as the Scottish Premier League leaders continued to look menacing.
And the pressure finally told on the stroke of half-time when Hooper stayed onside to tap home Brown's inch-perfect low cross.
Celtic had the chance to go in front early in the second period after Lassad's shot had been blocked by the hands of Goodwin and referee Willie Collum pointed to the spot.
Mulgrew took the responsibility but his effort from 12 yards was palmed away by Samson.
The Celtic defender's afternoon then went from bad to worse as he blocked Gary Teale's cross with an arm and referee Collum awarded St Mirren a penalty of their own.
Former Celtic player McGowan confidently stroked the ball past Zaluska to give the Buddies a crucial advantage.
And Thompson gave his side some breathing space with the third goal, stooping to turn McAusland's cross into the corner of the net.
Celtic tried to respond but Mulgrew and substitute Anthony Stokes were unable to trouble Samson.
And St Mirren maintained a threat of their own with Teale hammering in a shot that forced a block from Zaluska.
A low drive by Mulgrew found its way through a ruck of legs and into the net but within seconds the final whistle sounded to the delight of the St Mirren faithful.