Second half tries from Brian Gleeson, James Nicholson and replacement Sam Berman sent the Ireland Under-20s through to the World Rugby U-20 Championship final, following a shrewd 31-12 win over South Africa.
IRELAND UNDER-20s 31 SOUTH AFRICA UNDER-20s 12, Athlone Sports Stadium, Cape Town
Scorers: Ireland: Tries: James Nicholson 2, Brian Gleeson, Sam Berman; Cons: Sam Prendergast 4; Pen: Sam Prendergast
South Africa: Tries: Imad Khan, Coetzee le Roux; Con: Jean Smith
HT: Ireland 7 South Africa 0
Richie Murphy's youngsters knocked out the tournament hosts in Cape Town, as Ireland reached their second ever World final at this age grade. The class of 2016 were finalists, while the Ireland Under-21s of 2004 also made the decider.
Next Friday's final at Athlone Sports Stadium (kick-off 7pm local time/6pm Irish time) will be an all-European clash - the fourth such fixture since 2013 - with Ireland set to play either France or England.
Nicholson and Imad Khan traded tries each side of half-time, with Ireland doing well to lead 7-0 at the break. But they then went up a couple of gears, particularly in their forward play, to build a big lead.
Out-half Sam Prendergast landed all five of his place-kicks, and his cross-field deliveries set up Nicholson's two scores. Charging through off a lineout, Gleeson brilliantly burst past three defenders to score in the 50th minute.
Released into space by John Devine and Henry McErlean, Berman straightened up an attack and used a strong fend to complete Ireland's four-try haul. Prendergast tagged on a penalty before Coetzee le Roux claimed a late consolation try.
Giving his reaction afterwards, head coach Murphy said: "I thought South Africa came out strong and threw a lot of stuff at us but our boys showed great character to stay in the fight.
"I thought system-wise we actually did quite well and were obviously delighted to get out of that onslaught of pressure and soak it all up, and then actually go into half-time seven points up, which I thought was a massive turning point in the game.
"We just talked at half-time about coming in seven points up, you know, that we were in a good place considering we hadn't really fired as many shots as we would have liked.
"That was due to South Africa being very good, you know, their set piece was functioning well in the first half and that was getting them on the front foot.
"It's quite hard to tackle some of those big boys coming round the corner but in fairness to our boys, we stuck at it and that gave us that opportunity.
"I suppose in the second half we obviously conceded early on but went straight back down and got a try off Brian Gleeson coming round off the lineout, which put us in a really good place."
He added: "I thought Sam came into his own, especially in the second half. He started getting his head up and moving the ball to space really well.
"I thought from a team point of view, the first half was about grit and determination and the second half we probably showed a little bit more what we could do as a rugby team and scored some really good tries.
"We're in a good place as a team, we'll see what the knocks are like over the next 24 hours. You don't have much time to change in these competitions because they're only five-day turnarounds. Most of that time is spent resting, very little time in training.
"So, look, we'll go out and have a look at France and England, and whoever it'll be in the final, we know it's going to be a really tough game."
TIME LINE: 37 minutes - South Africa yellow card: Jannes Potgieter; 38 mins - Ireland try: James Nicholson - 5-0; conversion: Sam Prendergast - 7-0; Half-time - Ireland 7 South Africa 0; 43 mins - South Africa penalty: missed by Jean Smith - 7-0; 45 mins - South Africa penalty: missed by Jean Smith - 7-0; 46 mins - South Africa try: Imad Khan - 7-5; conversion: Jean Smith - 7-7; 50 mins - Ireland try: Brian Gleeson - 12-7; conversion: Sam Prendergast - 14-7; 60 mins - Ireland try: James Nicholson - 19-7; conversion: Sam Prendergast - 21-7; 66 mins - Ireland try: Sam Berman - 26-7; conversion: Sam Prendergast - 28-7; 72 mins - Ireland penalty: Sam Prendergast - 31-7; 76 mins - South Africa try: Coetzee le Roux - 31-12; conversion: missed by Jean Smith - 31-12; Full-time - Ireland 31 South Africa 12
IRELAND U-20: Henry McErlean (Terenure College RFC/Leinster); Andrew Osborne (Naas RFC/Leinster), Hugh Gavin (Galwegians RFC/Connacht), John Devine (Galway Corinthians RFC/Connacht), James Nicholson (UCD RFC/Leinster); Sam Prendergast (Lansdowne FC/Leinster), Fintan Gunne (Terenure College RFC/Leinster); Paddy McCarthy (Dublin University FC/Leinster), Gus McCarthy (UCD RFC/Leinster) (capt), Ronan Foxe (Old Belvedere RFC/Leinster), Charlie Irvine (Queen's University Belfast RFC/Ulster), Conor O'Tighearnaigh (UCD RFC/Leinster), Diarmuid Mangan (UCD RFC/Leinster), Ruadhan Quinn (Old Crescent RFC/Munster), Brian Gleeson (Garryowen FC/Munster).
Replacements used: Sam Berman (Dublin University FC/Leinster) for Gavin (50 mins), Evan O'Connell (UL Bohemian RFC/Munster) for Irvine (65), Fiachna Barrett (Galway Corinthians RFC/Connacht) for Foxe (69), George Hadden (Clontarf FC/Leinster) for P McCarthy, Oscar Cawley (Naas RFC/Leinster) for Gunne (both 72), Dan Barron (Dublin University FC/Leinster) for Gleeson, Danny Sheahan (UCC RFC/Munster) for G McCarthy, Matthew Lynch (Dublin University FC/Leinster) for Nicholson (all 74).
SOUTH AFRICA U-20: Hakeem Kunene (Cell C Sharks); Jurenzo Julius (Cell C Sharks), Katlego Letebele (Vodacom Bulls), Ethan Hooker (Cell C Sharks), Michael Annies (Toyota Cheetahs); Jean Smith (Cell C Sharks), Imad Khan (DHL Western Province); Corné Lavagna (Vodacom Bulls), Juann Else (Vodacom Bulls), Dian Heunis (Cell C Sharks), Coetzee le Roux (Cell C Sharks), JF van Heerden (Vodacom Bulls), Paul de Villiers (DHL Western Province) (capt), Ghudian van Reenen (Vodacom Bulls), Corné Beets (Vodacom Bulls).
Replacements used: Jannes Potgieter (Cell C Sharks) for van Reenen (20 mins), Regan Izaks (Vodacom Bulls) for Kunene (half-time), Phatu Ganyane (Cell C Sharks) for Lavagna, Zachary Porthen (DHL Western Province) for Heunis (both 51), SJ Kotze (Lions) for Else (65), Abulele Ndabambi (Vodacom Bulls) for Beets (65), Asad Moos (DHL Western Province) for Julius (68), Damian Markus (DHL Western Province) for Annies (70).
Referee: Anthony Woodthorpe (England)