Ballymena United got the better of Ballinamallard in an exciting League Cup semi-final to book a place against Cliftonville in the 24 January decider.
A Ryan Campbell snapshot from the edge of the box put the hosts in front on 20 minutes but Allan Jenkins steered the ball home for a 45th-minute equaliser.
Matthew Tipton fired home on the hour, then Campbell drilled into the corner midway through the second half.
Davy Munster pounced to fire home the winner three minutes from time.
Ballymena, who have picked up only one win from their last 12 Premiership outings, were attempting to secure a first appearance in a League Cup final, while the Mallards were hoping to make their first-ever senior final.
The home side made much the brighter start, with Campbell just failing to get a touch on a Liam Martin cross and Mark Stafford's effort sailing over Stuart Addis's bar.
Campbell gave his side a deserved lead when he drilled in a shot which beat Addis at his near post for his fourth goal of the season.
Whitey Anderson's side continued to press and Johnny Lafferty headed narrowly over the bar, while Martin had an effort punched away by Addis.
Campbell failed to make a clean connection with another chance, a Lafferty shot went just over and Martin's drive through the legs of Addis found the sidenetting.
Alan Teggart had Ballymena's best chance of the first half, before Jenkins reacted quickest to slot home from inside the area after Stefan McCusker had saved Darren Boyce's initial effort, the Sky Blues' first-ever goal at Ferney Park.
The visitors came into the game more in the second period and McCusker was called into action again to deny Neal Gawley's well-struck right-foot 25-yard free-kick.
The equaliser was just reward for Glenn Ferguson's side's efforts as Tipton swivelled and fired home after Jenkins had been thwarted by McCusker, Boyce's effort cannoned off the post and Munster saw his header saved.
Campbell grabbed his second of the match by drilling into the corner of the net, after which McCusker made another fine stop from Boyce and Addis was forced into a good save by Martin.
Gawley provided the delivery for Munster's winner, the big central defender pouncing to find the net from six yards after the ball broke kindly to him.