SCOTLAND U-20 8 IRELAND U-20 31, Falkirk Stadium
Scorers: Scotland: Try: Richie Vernon; Pen: Cameron Ferguson
Ireland: Tries: Penalty try, Darren Cave, Richard Sweeney, Keith Earls; Cons: Ian Keatley 3, Niall O’Connor; Pen: Keatley
Eric Elwood's young side won their fourth match in this year's Six Nations to keep their championship and Grand Slam dreams alive.
UCD's Ian Keatley swapped penalties with Scottish captain Cameron Ferguson in a disappointing first half that ended 3-3.
The Irish upped the ante in the second period, bagging a penalty try and a seven-pointer from Belfast Harlequins centre Darren Cave.
The hosts hit back through flanker Richie Vernon, but late converted tries from St. Mary's College hooker Richard Sweeney and Thomond winger Keith Earls, who claimed the man of the match honours, saw Ireland canter home.
Ferguson landed a 17th-minute penalty as the Scots, who lost their opening three matches in the tournament, made the better start.
But the Scottish out-half missed two kickable penalty chances soon after and Ireland gradually got into their stride. Elwood's charges dominated the first half's closing ten minutes with Keatley, at the second attempt, swinging over his only penalty of the night.
The Irish had the hosts immediately on the back foot on the resumption and they forced two errors which led to the Scottish pack conceding a penalty try - an Ireland scrum had them retreating and they were forced to infringe.
Keatley converted and in the 57th-minute Cave struck for his try - the best of the night - as big winger Shane Monahan came in off his wing and offloaded in time for Cave to cut through the cover and score.
17-3 in front, the Irish had a player sin-binned when prop Cian Healy was flashed a yellow for charging a player without the ball.
Scottish winger Alex Grove missed a subsequent penalty but blindside Vernon did cut the gap when he followed up on a kick ahead to dot down.
Ireland though moved up a gear for the final ten minutes again, with hooker Sweeney latching onto a loose ball after a Conor O'Donohoe break and he sprinted over for an easy try.
Earls, who was in excellent form, had to produce a try-saving tackle on Groves to keep the Scots from notching their second try before he scored in the right corner in injury-time to complete another heartening win - replacement Niall O'Connor converted.
Speaking afterwards, coach Elwood said Scotland had given his side a tough game.
"We didn't make it easy for ourselves and they certainly didn't co'-operate either," said the former Connacht and Ireland out-half.
"It took us a long time to get going and there were a lot of nerves. At the end of the day, we won the match and we deserved to win it as well."
Only Italy now stand in the way of the Irish Under-20s winning a much coveted Grand Slam next Friday - that clash will take place at the Santa Colomba Stadium in Benevento at 2.30pm local time.
SCOTLAND U-20: Graham Hogg (Border Reivers, Hawick); Colin Goudie (Stewart's-Melville FP), Rory Hutton (Hawick), Robin Holroyd (Tynedale), Alex Grove (Worcester); Calum Ferguson (Edinburgh/Dundee HSFP) (capt), Jamie Hunter (Glasgow/Hillhead-Jordanhill); Alan Dymock (Edinburgh/Dundee HSFP), Pat McArthur (Ayr), Kyle Traynor (Edinburgh/Watsonians), Willie Lipp (Watsonians), Frazer McKenzie (Edinburgh/Dunfermline), Richie Vernon (Borders/Stewart's-Melville FP), Daniel Levison (Dundee HSFP), Graeme McGilchrist (Tynedale).
Replacements used: David Lambert (Heriot's) for McKenzie, Bruce Pow (Hawick) for Traynor (both 72 mins), Alec Jessop (Melrose) for Hutton, Nick McTaggart (Hawick) for McGilchrist (both 78). Not used: Nick Hart (Watsonians), Stuart McGee (Boroughmuir), David McCall (Edinburgh/Stewart's-Melville FP).
IRELAND U-20: Felix Jones (Seapoint/Leinster); Shane Monahan (Dublin University/Leinster), Darren Cave (Belfast Harlequins/Ulster), Aidan Wynne (Buccaneers/Connacht), Keith Earls (Thomond/Munster); Ian Keatley (UCD/Leinster), Paul O'Donohoe (UCD/Leinster); Cian Healy (Clontarf/Leinster), Richard Sweeney (St. Mary's College/Leinster), Jamie Hagan (Greystones/Leinster), Conor McInerney (UCD/Leinster), Andrew Browne (Galwegians/Connacht), Thomas Anderson (Dungannon/Ulster), Kevin Sheahan (UCD/Leinster), David Pollock (QUB/Ulster) (capt).
Replacements used: Ruaidhri Murphy (Lansdowne/Leinster) for Sheahan (68 mins), Sheahan for Healy (72), Neilus Keogh (UCC/Munster) for Browne (73), Kyle Tonetti (Blackrock College/Leinster) for Monahan, David Drake (Ballymena/Ulster) for O'Donohoe, Niall O'Connor (Belfast Harlequins/Ulster) for Keatley (all 78), Ger Slattery (Young Munster/Munster) for Sweeney, Eoghan Grace (Shannon/Munster) for Sheahan (80+1).
IrishRugby.ie man of the match: Keith Earls (Ireland)
Referee: Carlo Damasco (Italy)