Mickey Harte's side led by two points at the break and Stephen O'Neill put more daylight between the teams with a 40th-minute goal after Donegal had Michael Murphy sent off near the break.
Tyrone goalkeeper Niall Morgan sent over a 45 only to see his opening score cancelled out by a Colm McFadden free.
Mark Donnelly and Sean Cavanagh were both on target to ease the home side into a two points lead, but Donegal drew level with a hat trick of points from Murphy.
Morgan from a 47-metre free and Ronan McNamee with an excellent effort from play to restored Tyrone's two points lead.
But Donegal were awarded a penalty in the final minute of the half, Ryan McKenna penalised for bringing down Ross Wherity as threatened to score.
That was the point when it all went wrong for Footballer of the Year Murphy who saw his penalty superbly saved by Morgan, and moments later was sent off after receiving a second yellow card.
Tyrone went into a five points lead when Stephen O'Neill scored a goals five minutes after the restart.
The Tyrone captain collected Ryan McKenna's pass and sent in a shot which Neil McGee could only help into the net.
Morgan stepped up again to score another long-range free and when O'Neill added a point, the Red Hands led by five with just 10 minutes of the second half played.
Donegal scored a couple of points from breakaways from McFadden and substitute Paddy McBrearty.
McFadden then brought his tally to five - all from frees - but Donegal were down to 13 men three minutes from the end when Neil Gallagher was shown red after a second yellow.
Down are in early relegation danger after an agonising last-gasp defeat by Cork in Division One of the National League at Pairc Esler on Sunday.
James McCartan's side looked to have the game won as they led by two points as the game entered stoppage time.
However, Ciaran Sheehan's second goal of the match helped Cork steal victory..
A goal from Connaire Harrison's goal had helped Down into a two points half time lead.
In Division Two Derry were 0-19 to 0-10 winners over Wexford.
Tyrone 1-13 - 0-12 Donegal.
Down 1-17 - 3-12 Cork.
Wexford 0-10 - 0-19 Derry.