Tyrone qualified for the final of the Allianz National Football League for the first time since they won their second title in 2003 after recording a 2-15 to 2-11 victory against Kildare at Croke Park.
Tyrone trailed by 1-06 to 1-05 at the interval but produced a strong third quarter which included a goal from Mark Donnelly two minutes after the restart.
That put Tyrone into a lead they never surrendered and while a Paul Cribbin goal helped reduce the margin to a point, Mickey Harte’s men pulled away again in the closing minutes.
Kildare have not reached the final since 1991 but their hopes of a good start were dashed when Stephen O’Neill struck an early point for Tyrone and then he set up Mattie Donnelly for a goal.
Kildare did not help their cause with some wayward shooting but Padraig O’Neill showed them the way forward with three excellent points from play, with Eoghan O’Flaherty and a brace from Johnny Doyle edging Kildare 0-06 to 1-02 in front after 24 minutes.
Tyrone goalkeeper Niall Morgan pointed a free after 25 minutes but less than a minute later was picking the ball out of his net when he did well to block Mark Donnelly but Paddy Brophy finished the rebound to push Kildare two points in front.
A Sean Cavanagh free for Tyrone reduced the deficit for Kildare at the interval but Tyrone got a great start to the second half.
Kildare were again rocked for starting a half slowly when Mark Penrose levelled and then Mark Donnelly found the net for a lead which Tyrone held to the end.
Kildare kept plugging away at the lead but Tyrone still led by 2-10 to 1-10 with 15 minutes left.
Stephen O’Neill and Conor McAliskey put five between them, before a Paul Cribbin goal gave Kildare a lifeline and Brophy reduced the margin to just a point three minutes from the end.
However, Stephen O’Neill kicked two superb points from either wing and mark Donnelly also landed a fine effort as Tyrone booked their place in the final with a strong finish.
TYRONE: N Morgan (0-01, 0-01f); PJ Quinn, C Clarke, C McCarron; D Carlin, Mattie Donnelly (1-01), C Gormley; C Cavanagh, S Cavanagh (0-02, 0-01f); R McNamee, P Harte, Mark Donnelly (1-01); M Penrose (0-01), S O’Neill (0-04), D McCurry (0-01, 0-0-1f).
Subs used: A Cassidy (0-01) for Harte (19 mins), Justin McMahon for McNamee (35 mins), C McAliskey (0-02) for McCurry (35 mins), C McGinley for Quinn (61 mins), A McCrory for Carlin (61 mins).
KILDARE: M Donnellan; O Lyons, M Foley, H McGrillen; P Kelly, E Doyle, P Cribbin (1-00); S Hurley, P O’Neill (0-03); Daniel Flynn, N Kelly, E O’Flaherty (0-01); E Bolton, P Brophy (1-01), J Doyle (0-06 0-04f).
Subs used: T O’Connor for Daniel Flynn (52 mins), S Johnson for Bolton (54), E Callaghan for N Kelly (61 mins), A Smith for E Doyle (64 mins).
Referee: Rory Hickey (Clare).