Mark Patton and Ciaran Martyn struck in extra-time to give Glenavon a 3-1 win over Crusaders in the Saturday's Irish Cup semi-final at Windsor Park.
Paul Heatley slotted in for the Crues before Glenavon's Tiarnan Mulvenna saw his penalty saved by Sean O'Neill.
Martyn side-footed into the top corner to level in the second half while James McGrath kept out Chris Morrow's penalty in the first period of extra-time.
Patton netted with a deflected shot before Martyn slid in the third.
Crusaders were seeking silverware after defeats in the League Cup and Co Antrim Shield finals and they will rue missed opportunities to make a third decider.
Crues striker Gary McCutcheon had an early effort block before Glenavon defender Kyle Neill volleyed straight at O'Neill from close range.
Heatley put the Crues ahead after 14 minutes, the winger jinking past Rhys Marshall before slipping the ball under the body of McGrath.
McGrath kept out a drilled Nathan Hanley shot and pushed over the midfielder's dangerous free-kick.
McCutcheon blazed over when he should have scored while Glenavon were also to waste a glorious chance on 39 minutes.
Davy Magowan brought down Guy Bates just inside the box but Mulvenna's spot-kick was easily saved by O'Neill.
Jordan Owens headed over from four yards early in the second half before Martyn's classy finish after 66 minutes, from substitute Mark Patton's cross, brought the Lurgan Blues level.
Owens squandered another opening with McGrath pushing wide his scuffed shot although he nearly made amends when an 18-yard effort curled just wide.
O'Neill pushed Patton's shot into the side netting before the game went into extra-time.
Owens was denied by McGrath with the keeper producing a superb save to keep out a header.
McGrath came to Glenavon's rescue again as the first period of extra-time came to a close, getting down to block Morrow's weak penalty after Richard Clarke was pulled back by Kris Lindsay.
It proved to be a decisive moment, for Glenavon were soon go ahead thanks to Patton when his shot deflected off Josh Robinson and flew past O'Neill in the 114th minute.
Martyn sealed victory and a meeting with Ballymena in the final, Glenavon's first since 1998, with the midfielder turning the ball in from a Bates pass two minutes later.
Crusaders: O'Neill, Magowan, Coates, Leeman, Hanley, Robinson, Clarke, Adamson, Heatley, McCutcheon, Owens.
Glenavon: McGrath, Neill, Lindsay, Marshall, McKeown, Martyn, McCabe, McGrory, Singleton, Mulvenna, Bates.