St Mirren are on the march to Hampden after a stunning last-gasp win over Rangers in the Betfred Cup.
Conor McCarthy smashed Rangers' 27 game unbeaten record with an injury time winner to seal a 3-2 win over the Gers and send Saints into the semi-finals where they will face Livingston.
While it was an unforgettable night for Jim Goodwin's men they could have been forgiven for thinking that a long night was in store when Rangers took the lead with just seven minutes played. McCarthy's header was picked up deep in the Saints half by Connor Goldson who strolled beyond Ethan Erhahon on his way into the box and slammed home.
Saints claims for a penalty were denied on 34 minutes when Jon Obika went down in the box under the challenge from Leon Balogun. Referee David Dickinson, who was a late replacement for the injured Andrew Dallas, said no.
The Buddies would win a penalty six minutes later when Dylan Connolly was felled by Calvin Bassey. Jamie McGrath stepped up and coolly stroked beyond Allan McGregor to make it four goals in four matches.
It didn't take long into the second-half for McGrath to make it five in four after a well worked move from Saints. Erhahon fed the ball down the channel to Connolly who raced down the right-hand side before swinging a low ball into the Rangers box. Jon Obika held it up before laying off to McGrath. The Irishman showed great composure to twist by the Gers defence and knock beyond McGregor to put Saints in front.
Rangers thought they were level on 65 minutes when James Tavernier had the ball in the Saints net. Alnwick couldn't hold Kent's long-range effort with Kemar Roofe on to the rebound and rolling back to Tavernier who tucked home. But the linesman had judged that Roofe had run the ball out of play.
The visitors put pressure on to try and find an equaliser in the final 15 minutes with Alnwick holding a low drive from Tavernier on 75 minutes.
Then, with just two minutes of normal time remaining, Rangers found a leveller through substitute Steven Davis. Tavernier's free-kick cracked off the post and fell to Davis whose shot into the corner just evaded Alnwick to find its way into the top corner.
It was a sickener for Saints who looked to be heading into extra-time. But this St Mirren side had other ideas. A McGrath corner was pushed away by McGregor, only for Doyle-Hayes to force it back to McGrath who swung it in again. Richard Tait rose the highest only to be denied by a wonderful save by McGregor. It landed at the feet of McCarthy who slammed into the roof of the net to secure a memorable win for the Paisley Saints.
Full-Time: St Mirren 3-2 Rangers
St Mirren: Alnwick, Fraser, Shaughnessy (c), McCarthy, Tait, Connolly (MacPherson 82), McGrath, Doyle-Hayes, Erhahon, Mason, Obika (Erwin 90)
Subs Not Used: Lyness, Foley, Flynn, McAllister, Durmus, Dennis, Jamieson
Rangers: McGregor, Tavernier, Goldson, Balogun (Hagi 84), Bassey (Barisic 56), Arfield (Davis 56), Zungu (Kamara 72), Aribo, Kent, Itten (Defoe 72), Roofe
Subs Not Used: McLaughlin, Helander, Patterson, Barker
Referee: David Dickinson
Assistant Referee: Graeme Stewart
Assistant Referee: John McCrossan
Fourth Official: Chris Graham