Derry City beat Sligo Rovers 5-3 on penalties, after the match ended 3-3, to book their place against Cork City in the final of the EA Sports Cup.
Daniel Lafferty scored with a 33rd-minute header but Danny Ventre curled a shot into the corner to equalise on 45.
Stephen McLaughlin headed in on 75, Eoin Doyle levelled with a terrific finish on 79 and Lafferty was sent-off.
McLaughlin shot home after 93 but Doyle then headed home and Richie Ryan missed the vital penalty, Eugene Ferry saving.
Aaron Green hit the woodwork for Sligo early on but it was Derry who took the lead.
Ruairi Harkin delivered the cross and Lafferty found the net with a backpost header.
Ventre beat his man on the edge of the box and curled home a spectacular finish to make the score 1-1 at the interval.
Harkin was again the provider for McLaughlin to score with a glancing header but Doyle restored parity four minutes later.
The Candystripes looked to be on the back foot following Lafferty's dismissal but McLaughlin curled the ball past Brendan Clarke.
Doyle headed in from a Joseph Ndo cross three minutes into the second period of extra-time.
Ferry produced a vital save in the shootout and McLaughlin found the net with the decisive penalty.