Champions Donegal will meet Down in the Ulster Senior Football Championship final after a 0-12 to 0-10 win over Tyrone at Clones.
Martin Penrose eased Tyrone into a narrow 0-06 to 0-05 half-time lead after the sides had been level on five occasions in the first half.
But Donegal’s massed defence squeezed the Red Hands out of the game in the second half, and scores from Colm McFadden, Michael Murphy and Karl Lacey saw them home. Donegal needed a superb Paul Durcan save from Martin Penrose in stoppage time to deny the Red Hands.
Tyrone led by two points early in the second half, but their opponents shut up shop and held them scoreless for more than half an hour as they turned the game in their favour.
Mickey Harte’s side now head into the Qualifiers once again, a route than has served them well in the past, while Donegal will be fancied to account for Down in the provincial decider.
When full back Justin McMahon failed to recover from a hamstring injury, Mickey Harte gambled with teenage full back Conor Clarke, but Donegal also lost their full back when Neil McGee was forced off by injury after just two minutes.
Joe McMahon and Stephen O’Neill were on target early on for the Red Hands, but the defending provincial champions were level by the eighth minute
Mark McHugh landed a point from 50 metres, before a Michael Murphy free made it 0-2 each.
Mark Donnelly and Paddy McBrearty swapped points to make it 0-3 each after 17 minutes, before nineteen-year-old Clarke pushed forward to hammer over an inspirational point.
And as he grew in confidence, he also set up a score for wing back Sean O’Neill as Tyrone varied their approach.
The Red Hands almost had a goal when Joe McMahon fired in a shot which was saved by keeper Paul Durcan, and when the ball broke to Mark Donnelly, Paddy McGrath got back to keep out his effort.
Colm McFadden was kept quiet by Conor Gormley, but the gifted left-footer scored a 35th-minute free, which brought the sides level for the fifth time.
However, Martin Penrose edged Tyrone in front in stoppage time to take a 0-6 to 0-5 lead at the break.
Another McMahon free had the Red Hands two points ahead early in the second half, but they allowed Rory Kavanagh too much space to power through the middle and kicked points on two occasions.
Corner back Dermot Carlin’s point in the 40th minute was to be Tyrone’s last for 32 minutes as the Donegal defensive strategy began to work well.
McFadden, Murphy and Karl Lacey all hit the target as Donegal moved ahead, and as the game slipped into its closing stages, Jim McGuinness’ side led by 0-12 to 0-8.
Tyrone introduced Brian McGuigan for his first appearance since last year’s All-Ireland quarter-final defeat to Dublin, in a bid to find a way through the opposition defence.
McFadden was sent off for a second booking, before O’Neill narrowed the gap to three points.
And with the game well into injury time, Penrose created the opening to get a shot away, but Durcan was equal to the task, saving with his foot to send Donegal into this year’s Ulster final.
Donegal scorers: M Murphy (3f), C McFadden (2f) 0-3 each, R Kavanagh 0-2, R Bradley, K Lacey, P McBrearty, M McHugh 0-1 each
Tyrone scorers: Stephen O’Neill, J McMahon (2f) 0-2 each, C Clarke, C Gormley (45), D Carlin, Sean O’Neill; Mark Donnelly, M Penrose 0-1 each
Donegal: P Durcan, P McGrath, N McGee, F McGlynn, E McGee, K Lacey, A Thompson, R Kavanagh, N Gallagher, David Walsh, R Bradley, M McHugh, P McBrearty, M Murphy, C McFadden.
Subs: Declan Walsh for N McGee (3), M McElhinney for Gallagher (54), M O’Reilly for David Walsh (54), L McLoone for Bradley (68), C Toye for McBrearty (72)
Tyrone: P McConnell, A McCrory, C Clarke, D Carlin, R McMenamin, C Gormley, Sean O’Neill, J McMahon, C Cavanagh, Mattie Donnelly, Mark Donnelly, P Harte, M Penrose, Stephen O’Neill, O Mulligan
Subs: R McNabb for Mulligan (49), B McGuigan for Mattie Donnelly (61), A Cassidy for Mark Donnelly (65), N McKenna for McMenamin (65)
Referee: D Coldrick (Meath).