Donegal 1-9 Armagh 0-11
Michael Murphy came off the bench to help Donegal get back to winning ways in Ballybofey, hitting 1-2 as Donegal squeezed past Armagh on a rotten night.
The 2012 All-Ireland winning captain was sent on for his first appearance of 2019 in the 28th minute.
The first half was in its dying moments when Donegal worked a chance and Murphy made no mistake with a cool finish. The goal put Donegal 1-4 to 0-6 ahead at half-time.
By that stage, both teams were down to 14 men. Jason McGee, the Donegal midfielder, and Armagh corner back James Morgan saw red in the 18th minute and it was a mercy that others didn't follow.
Referee Martin McNally brandished 11 cards – including seven yellows to Armagh – and the night threatened to descend into farce.
Michael Langan's frees kept Donegal ticking over after Jamie Clarke and Rian O'Neill whizzed Armagh into action.
Ciarán Thompson and Langan stretched Donegal in front, but Niall Grimley made sure Armagh remained in the hunt.
With the game in the melting pot, Murphy hoisted over a mammoth score.
Murphy wormed his way in for another, but Armagh staged a stirring fightback and sub Mark Shields had a late effort deflected wide.
A brace by O'Neill and an Ethan Rafferty free, with the game's final kick, narrowed things up but, with Murphy and Leo McLoone standing tall, Donegal held on.
DONEGAL: S Patton; S McMenamin, B McCole, C Ward; R McHugh, L McLoone, Eoghan Ban Gallagher; H McFadden, C McGonagle; C Thompson (0-1, free), J McGee, M Langan (0-5, five frees); J Brennan, O Gallen, N O'Donnell (0-1).
Subs: M Murphy (1-2) for Gallen (28 mins), E McHugh for Thompson (47), P Brennan for McMenamin (55).
ARMAGH:- B Hughes; J Morgan, A McKay, R McShane; C Mackin, G McCabe, P Hughes; S Sheridan, N Grimley (0-3, three frees); J Hall, R Grugan, C Vernon; S Campbell (0-2), R O'Neill (0-4, one free), J Clarke (0-1).
Subs: R Kennedy for McShane (h/t), E Rafferty (0-1, free) for Campbell (39 mins), J Burns for Vernon, M Shields for Hall (both 63 mins), J McElroy for Mackin (69).
Referee: M McNally (Monaghan)