Premiership leaders Cliftonville are still on course for a domestic treble after beating Crusaders 2-0 in the Irish Cup semi-final at the Oval.
Crusaders were made to pay for missing their chances as Cliftonville hit two goals in two minutes through George McMullan and Joe Gormley.
McMullan scored a penalty after Stephen Garrett had been impeded by Crues defender Paul Leeman on 67 minutes.
Hesitation by Leeman then let Gormley in to shoot past O'Neill for 2-0.
Cliftonville were lucky not to have substitute Diarmuid O'Carroll sent-off after that when he escaped with just a yellow card for a late lunging tackle on Craig McClean.
It means Cliftonville will meet Glentoran in a final for the first time in the history of the Irish Cup.
Cliftonville won the League Cup earlier in the season and need just one point from their five remaining matches to secure a first Premiership title for 15 years.
The Solitude outfit, the oldest club in Ireland, have never won a league and cup double.
Crusaders will be sick of the sight of their north Belfast rivals this season having had their hopes dashed by Cliftonville in all three major competitions.
The Crues had the first decent dig at goal when Paul Heatley's first-time volley was saved by keeper Conor Devlin.
Stephen Baxter's Crusaders suffered an injury setback when defender Colin Coates had to go off with a pulled hamstring.
Leeman was booked for a foul on Liam Boyce and Heatley picked up a yellow for a lunge on McMullan.
Crusaders enjoyed a good spell early in the second half and came closest when Jordan Owens cracked a great shot against the far post with Devlin beaten.
The opening goal came when Leeman was adjudged to have fouled Garrett and McMullan tucked away the penalty.
Suddenly, it was 2-0 as Leeman was slow to clear the ball and Gormley ran through for his 29th goal of the season.