Lee Brennan produced an exhibition of finishing to put Tyrone into their first All-Ireland under 21 final since 2003.
The Trillick ace shot six points as the Red Hands set up a meeting with Tipperary on Saturday week.
The Ulster champions never trailed, but had to defend desperately at times as the Rossies pressed for scores late in the game.
Diarmuid Murtagh shot six points for the Connacht men, but in the end, they were outmanoeuvred by a well organised Tyrone side.
Tyrone’s high-octane start put them into a four-point lead inside the opening six minutes, with Lee Brennan providing two of their scores.
But after Murtagh opened Roscommon’s account from a tenth-minute free, they began to play with more fluency.
Midfielder Cathal Compton drove their challenge, inspiring with three well-taken scores, including the effort that narrowed the gap to a point in the 22nd minute. That, however, sparked the Red Hands back into action following a shaky spell, and they hit three of the last four points of the opening half.
Midfielder Cathal McShane thumped over his third of the evening, with Brennan also bringing his tally to three with Tyrone’s ninth point from play.
They could have had a goal when Ciaran McLaughlin sent Michael Cassidy clear, but the corner-back’s shot was comfortably saved by Shane Mannion.
A Danny McNulty free sent them in at the break with a 0-10 to 0-7 advantage, and Brennan continued to torment the Rossies’ defence in the second half.
He swept over another couple of gems to maintain the three-point cushion, but Roscommon remained in touch, with sub Thomas Corcoran converting a 45, and Murtagh firing over another couple of points.
And when Murtagh flashed over his sixth score of the evening with six minutes to play, the deficit was back to two.
The westerners, playing into the wind, were now driven by desperation, but also by a strong spirit, and they pressed forward with purpose in the closing stages.
Padraig Hampsey, Kieran McGeary and Ruairi Mullan all defended solidly as the Red Hands held out for a place in the decider, and they closed the game out with late scores from Frank Burns and McNulty.
Scorers — Tyrone: L Brennan 0-6 (1f), D McNulty 0-4 (3f), C McShane 0-3, M Kavanagh 0-2, F Burns, M Cassidy 0-1 each. Roscommon: D Murtagh 0-6 (4f), C Compton 0-3, T Corcoran (’45), R Daly, J Earley 0-1 each.
Tyrone: S Fox, R Mullan, P Hampsey, M Cassidy, C McLaughlin, R Brennan, K McGeary, F Burns, C McShane, C Meyler, M Kavanagh, M Walsh, L Brennan, D McNulty, R McGlone. Subs: S McKenna for McGlone (39), M Bradley for Kavanagh (44), P McKenna for Walsh (56), D Kavanagh for L Brennan (70).
Roscommon: S Mannion, N McInerney, S Mullooly, D Barron, E McGrath, C Kenny, R Daly, C Compton, T O’Rourke, S Killoran, U Harney, K Kilcline, D Murtagh, E Smith, P Kenny. Subs: N Kelly for Mannion (29), T Corcoran for O’Rourke (32), J Earley for Kilcline (h-t), N Gately for Kenny (39), K Finn for Compton (58), D Neary for Kenny (59).
Referee: P O’Sullivan (Kerry).