Ireland beat South Africa 31-12 to reach the World Rugby Under-20 Championship final, but England missed out after a 52-31 loss to France.
Tries from James Nicholson (2), Brian Gleeson and Sam Berman put the Irish, yet to win the competition, into the final for the first time since 2016.
Imad Khan and Coetzee le Roux scored South Africa’s two tries in Cape Town.
Ireland will face two-time champions France, who came from 17-0 behind inside 17 minutes to fend off England.
Les Bleuets hit back with seven tries to deny three-time winners England, who have twice been runners-up since beating Ireland on home soil in the 2016 final.
Despite being put under severe pressure by the Junior Springboks for much of the first half in the opening semi-final, Ireland nudged 7-0 ahead at the break when winger Nicholson touched down after receiving a pinpoint crossfield pass from Sam Prendergast.
That try for Ireland came after Jannes Potgieter was yellow-carded for a heavy tackle on Andrew Osborne.
South Africa started well in the second half and restored parity in the 45th minute when Khan crossed following fine work from Regan Izaks.
Ireland hit back quickly through Gleeson, however, before Nicholson’s second try put clear daylight between the sides with 20 minutes remaining.
Berman’s try and a Prendergast penalty stretched Ireland’s lead to 31-7, while Le Roux scored a late consolation for South Africa, who bowed out in the semi-finals for the sixth time running.
It has been an emotionally charged tournament for Ireland following the death of St Michael’s College students Andrew O’Donnell and Max Wall – known to several members of the squad – while on holiday in Greece.
Former Scotland international Greig Oliver also died last week in a paragliding accident, having travelled to South Africa to watch his son, scrum-half Jack Oliver, play in the tournament for Ireland.
France fight back after England’s flying start
Louie Johnson’s penalty opened England’s account against France before Sam Harris and Alex Wills crossed, but then came tries in reply from Mathis Ferte and Paul Costes.
Chandler Cunningham-South crashed over to give England a 24-14 lead at half-time, only for a penalty try to cut the gap, with replacement second row Finn Carnduff yellow-carded for collapsing a French maul.
France took advantage, with captain Lenni Nouchi’s try putting them in front for the first time before Marko Gazzotti crossed.
The points continue to flow, and scores from Oscar Jegou and Hugo Reus boosted the French lead.
England’s Cassius Cleaves claimed a consolation try, but by then it was clear two-time defending champions France would be Ireland’s opposition in Friday’s final.