Inverness CT survived a red card and a late fight-back from Northern Irish league leaders Crusaders to reach the Challenge Cup final.
George Oakley scored from close range in the opening minute and soon Joe Chalmers had headed in a second.
Jake Mulraney made it three, but Paul Heatley then scored either side of Inverness defender Brad McKay being sent off for a second booking.
The hosts’ Iain Vigurs missed a penalty after Declan Caddell was sent off.
It is the Highlanders’ first final in the tournament since 2009, and John Robertson’s side will meet Dumbarton, who defeated The New Saints 2-1 on Saturday.
It did not take the home side long to get their noses in front. Liam Polworth was allowed to race through the Crusaders midfield unopposed before feeding Oakley, who was left with a simple finish inside the area.
Oakley then turned provider; his cross from the right finding Chalmers, who nodded in the second.
Chalmers sliced a shot over the bar as Inverness continued to dominate, while Oakley had a shot tipped over.
Heatley forced two saves for Crusaders, but Mulraney made it three before the break when he was left unmarked in the box and coolly finished in the corner.
Heatley did find the net when he diverted Gavin Whyte’s shot past Mark Ridgers.
And the visitors’ chances were further enhanced when McKay was ordered off after picking up a second yellow card for a shove off the ball.
It set up a thrilling end to the game. First Heatley raced down the left and fired in a second for Crusaders.
And they almost sneaked a third when Darren Murray’s shot was pushed away by goalkeeper Ridgers and Collin Seedorf had to make a brilliant intervention on the goal-line.
Oakley then hit the inside of the post at the other end and the game ended in controversy when Polworth hit the deck under Caddell’s challenge to win a penalty, to the fury of the visitors.
Caddell was booked for the challenge and then a second time for tussling with Polworth in the aftermath, before Vigurs sent his spot-kick past the post.