Crusaders beat Linfield 10-9 in a dramatic penalty shoot-out after the League Cup quarter-final finished 1-1.
Declan Caddell put the Crues ahead after 63 minutes at Windsor Park with a back-post finish.
Timmy Adamson was shown a red card for handling on the line and Brian McCaul netted the resulting penalty to level with just a minute remaining.
The tie went to a shoot-out after extra-time and Crues skipper Colin Coates scored the winning penalty.
Linfield dominated possession in the first half but the visitors created the better chances.
Blues keeper Jonathan Tuffy made a superb save to keep out a Jordan Owens shot when the striker was clear on goal.
Paul Heatley's tame chip found the hands of Tuffy while Linfield striker Andy Waterworth saw his strike deflect wide.
Caddell made the breakthrough with a rebound finish after Tuffy parried Heatley's shot into his path.
The Blues pressed for the equaliser and O'Neill kept out Waterworth's effort with his legs.
Adamson was shown a straight red and McCaul held his nerve to stroke home the spot-kick and take the game into extra-time.
Aaron Burns and Philip Lowry went close for the hosts before O'Neill produced an excellent double-save to deny Carvill and Lowry.
Crusaders also had an opportunity when Tuffey made a point-blank save from Caddell's shot.
It went to a shoot-out with James Knowles, Carvill, BJ Burns and McCaul netting for the Blues while Josh Robinson's spot-kick was saved after successful penalties from Coates, Chris Morrow and Craig McClean.
It left Kyle McVey with the chance to win it for Linfield but he sent his penalty wide.
Matthew Snoddy scored to leave it 4-4 and into sudden death.
The next 10 penalties found the net - Waterworth, Aaron Burns, Mark McAllister, Sean Ward and Tuffy for the Blues while Owens, David McMaster, Davy Magowan, Caddell and O'Neill were on target for Crusaders.
Knowles' second penalty was saved by O'Neill and Coates scored with his second spot-kick to make it 10-9 and send Crusaders into the semis.