Tyrone outclassed Donegal to qualify for the Ulster SFC final on 15 July.
Dermot Carlin wins possession ahead of Donegal's Brian Roper
Donegal led 1-2 to 0-2 with Kevin Cassidy goaling and Colm McFadden also having a penalty saved by John Devine.
But a Brian Dooher-inspired Tyrone fought back to lead 1-6 to 1-3 at the interval with Colm McCullagh notching a penalty for the dominant Red Hands.
Raymond Mulgrew struck Tyrone's second goal and Donegal's dismal display was completed by Colm McFadden's sending off for an appalling punch on Dooher.
Donegal were then reduced to 13 men in injury-time when Kevin McMenamin was dismissed after getting his second yellow card.
As expected, Donegal's team sheet had to be altered before the start with Adrian Sweeney coming in for the injured Michael Hegarty although Eamon McGee's inclusion in place of Barry Dunnion was a surprise.
Tyrone made the better start with Brian Dooher knocking over an immediate point and Owen Mulligan adding another free in the sixth minute.
A frenetic five minutes then followed with Donegal notching 1-2 and also missing a penalty.
Colm McFadden opened Donegal's account in the seventh minute and the same player then had the ball in the net thanks to a magnificent shot but Meath referee David Coldrick had already blown up for a penalty for a foul on the Donegalman.
McFadden's penalty was easily saved by John Devine although Ciaran Bonner, moments later, knocked over a towering point to reduce some of the Donegal hurt.
However, Donegal did have the ball in the net three minutes later with Kevin Cassidy producing a clever finish from close range.
But Tyrone were unruffled and they went on to hit 1-4 without reply as Donegal badly lost their way.
Donegal's Rory Kavanagh is pursued by Davy Harte
Mulligan (two), Dooher and Davy Harte hit points as Sean Cavanagh began to take control of the crucial midfield sector.
At that stage, Tyrone were playing with impressive pace while Donegal looked positively ponderous.
Tyrone then won a penalty in the 33rd minute with Donegal goalkeeper Paul Durcan penalised for throwing the ball in the small parallelogram after he had stopped a close-range effort from Cavanagh.
Colm McCullagh coolly slotted the penalty although Donegal goalkeeper Durcan protested that he had been distracted by a pushing and shoving match outside the large parallelogram.
Donegal defender Paddy McConigley was booked after the incident and it appeared that Brian McIver's side were losing their discipline.
However, Donegal got a boost before the break when Davy Harte was harshly penalised for over-carrying and Devenney notched the free to cut Tyrone's lead to three at the break.
Tyrone's dominance continued after the break as they hit three of the next four scores to extend their lead to 1-9 to 1-4.
The match could have been over at that stage as Kevin Hughes blasted over the bar from close range in the 40th minute when he seemed certain to score a goal.
Only poor Tyrone shooting was keeping Donegal in the contest at that stage but Dooher showed his colleagues the way to finish when he blasted over his fifth point of the match.
However, the game was definitely over when Raymond Mulgrew blasted in a superb goal in the 52 minute after great work by Colm McCullagh.
The goal extended Tyrone's lead to 2-11 to 1-5 and Donegal were being humiliated.
Donegal fans were streaming out of the Clones exits long before the final whistle.
However, Tyrone continued to toy with the dismal Donegal side and Brian McIver's side indiscipline was summed up by McFadden's late dismissal after he had floored Dooher with a right hook right in front of referee David Coldrick.
McFadden is certain to get a hefty ban for his dismissal and Donegal were reduced to 13 men in injury-time when McMenamin received his second yellow card.
Tyrone: J Devine, R McMenamin, C McGinley, D Carlin, D Harte (0-1), C Gormley, P Jordan, K Hughes (0-1), S Cavanagh (0-1), B Dooher (0-5), R Mulgrew (1-1), E McGinley, C McCullagh (1-1), C Cavanagh, O Mulligan (0-3). Subs: J McMahon for C McGinley, S O'Neill (0-2) for E McGinley, R Mellon for Dooher.
Donegal: P Durcan, N McGee, P Campbell, K Lacey, P McConigley, B Monaghan, E McGee, N Gallagher, K Cassidy (1-0), B Roper, C Bonner (0-2), R Kavanagh (0-1), C McFadden (0-1), B Devenney (0-2), A Sweeney. Subs: R Bradley for Roper, K McMenamin (0-1) for Sweeney, N McCreadie for Campbell, S McDermott for Bonner.
Referee: David Coldrick (Meath)
Other Championship results
Bank of Ireland Leinster SFC
Meath 0-12 0-16 Dublin
Wexford 0-16 2-8 Louth
Sligo 0-13 2-5 Roscommon
Guinness Munster SHC
Cork 3-18 5-15 Waterford
Tipperary 2-21 1-24 Limerick