Donegal 1-13 Tyrone 1-10
Shutting out Tyrone for the final 23 minutes was key for Donegal in making it a fourth Ulster SFC win over Tyrone in five seasons.
Neil Gallagher and Sean Cavanagh were sent off for double-card offences late on in a game that sizzled with quality football and heated moments, most noticeably an ugly scene involving players and mentors at half-time.
All together, 11 yellow cards were shown in an expected intense affair in front of 17,435 in Ballybofey.
Despite a couple of late scares, Donegal managed to keep themselves at arm's length from Tyrone, Michael Murphy's beautiful 45 in the 69th minute the last score of the game.
It was Murphy who converted the previous two scores with a free in the 57th and 62nd minutes.
Tyrone goalkeeper Michael O'Neill was brilliant in keeping the margin so close, making second half saves from Paddy McBrearty and Colm McFadden, although Paul Durcan had to be on his toes late on too.
Before the half-time arguments, Donegal's economy was the biggest talking point.
By the ninth minutes and facing a bellowing wind, they were 0-4 to no score up with the excellent Frank McGlynn, McBrearty, Christy Toye and Martin McElhinney all posting points.
A Darren McCurry goal almost against the run of play brought Tyrone back into it although Donegal will be kicking themselves they weren't more alert considering it originated from a quickly-taken free.
Donegal responded well with a brace of points before Justin McMahon and Sean Cavanagh (free) cancelled them out after McCurry had put two makeable frees wide.
Turnovers were key and Donegal made Tyrone pay for one in the 28th minute when they broke with pace and Toye fisted over.
However, Tyrone took the lead in the 33rd minute when Cavanagh fired over a third unanswered point. Ronan McNamee sent over another after a flurry of hand-passes.
Donegal were finding the endeavour of Peter Harte difficult to handle only to then claim their own goal against the run of play when McElhinney found the net after Michael O'Neill had snuffed out Odhrán Mac Niallais' shot.
From the resultant kick-out, Mac Niallais fielded majestically before a back-in-form McFadden fired high and between the sticks.
With that quick one-two, Donegal had knocked the wind out of Tyrone's sails. Without the benefit of the breeze, Mickey Harte's side lacked the necessary initiative.
Scorers for Donegal: M McElhinney (1-2); M Murphy (0-3, 2 frees, 1 45); C Toye, C McFadden, P McBrearty (0-2 each); F McGlynn, K Lacey (0-1 each).
Scorers for Tyrone: S Cavanagh (0-4, 3 frees); D McCurry (1-0); C McAliskey (0-3); Justin McMahon, M Donnelly, R McNamee (0-1 each).
Subs for Donegal: M McHugh for M O'Reilly (39); A Thompson for C Toye (67); D Walsh for M McElhinney (70+1); D McLaughlin for C McFadden (70+3).
Red card: N Gallagher (64, second yellow).
Subs for Tyrone: P McNulty for C McShane (42); T McCann for B Tierney (55); M Bradley for D McCurry (64); R O'Neill for C McAliskey (67).
Red card: S Cavanagh (67, black after yellow).
DONEGAL: P Durcan; E McGee, N McGee, P McGrath; F McGlynn, K Lacey, R McHugh; N Gallagher, O Mac Niallais; C Toye, M McElhinney, M O'Reilly; P McBrearty, M Murphy, C McFadden.
TYRONE: M O'Neill; R McNamee, Justin McMahon, A McCrory; C McCarron, M Donnelly, R McNabb; C Cavanagh, S Cavanagh; R Brennan, B Tierney, P Harte; D McCurry, C McShane, C McAliskey.
Referee: J McQuillan (Cavan)