Oisin McConville scored two injury time points to give Armagh a sensational 0-13 to 0-11 victory over Tyrone in the Ulster SFC final replay at Croke Park.
Tyrone held a 0-7 to 0-5 lead at the break and increased the gap to four.
But the dismissals of Tyrone's Peter Canavan and Stephen O'Neill and Armagh player Ciaran McKeever midway through the second half changed the game.
Armagh took advantage of the extra man and scored the final six points to clinch a remarkable comeback triumph.
There was a surprise before the start of the game when Canavan, whose fitness had been in doubt, dropped down to the bench with Ryan Mallon promoted to take over at right corner-forward.
Another surprise was the size of the crowd, about 30,000 down on the 10 July encounter at Croke Park.
Peter Canavan was sent-off just after coming on as a sub
The game started at a frantic pace with Armagh looking much sharper than in the drawn game a fortnight ago.
Tyrone took the lead through a Davy Harte point but Armagh soon seized the initiative.
Points from Brian Mallon, Aaron Kernan, Ronan Clarke and Oisin McConville put the Orchard men three points clear.
Tyrone responded impressively and four consecutive points from Ryan Mellon, Stephen O'Neill, Brian Dooher and Brian McGuigan edged them ahead.
Kernan made it all-square again and the end-to-end football continued as Tyrone defender Ryan McMenamin scored a fine individual point.
O'Neill's injury-time free gave the Red Hands a 0-7 0-5 advantage at the break.
O'Neill, who chalked up 10 points in the first game, fired over a double early in the second half to stretch the gap to four.
McConville and Clarke replied for Armagh before Tyrone forward Martin Penrose took a point when he should have found the back of the net.
O'Neill was proving to be a key man again as he restored the four point lead with another free.
Oisin McConville celebrates his final point against Tyrone
Canavan was introduced on 53 minutes but within 60 seconds he was sent-off after a mass brawl in the centre of the pitch.
Armagh were also reduced to 14 men after Ciaran McKeever received a second yellow card in the same incident.
Steven McDonnell scored a free for Armagh before O'Neill was sent-off on 62 minutes for a bodycheck, his second yellow card offence.
Armagh took advantage of the extra man and drew level with points from McDonnell, Clarke and McKeever.
McConville sent a free between the posts in the second minute of injury time to put Armagh ahead and then pointed again two minutes later to secure a remarkable triumph.
Armagh: P Hearty, A Mallon, F Bellew, E McNulty, A Kernan, K McGeeney, A O'Rourke, P Loughran, P McGrane, C McKeever, J McEntee, O McConville, S McDonnell, R Clarke, B Mallon.
Tyrone: P McConnell, R McMenamin, C Lawn, S Sweeney, D Harte, G Devlin, P Jordan, C Gormley, S Cavanagh, B Dooher, B McGuigan, M Penrose, R Mellon, S O'Neill, E McGinley.
Referee: M Collins (Cork)
Weekend GAA results
Saturday 23 July
Ulster SFC Final replay
Armagh 0-13 0-11 Tyrone
All-Ireland Hurling Relegation semi-finals
Laois 1-10 3-13 Dublin
Offaly 5-17 0-18 Antrim
Sunday 24 July
All-Ireland SHC quarter-finals
Wexford 0-12 1-20 Clare
Cork 1-18 1-13 Waterford
Nicky Rackard Cup quarter-final
Longford 3-13 3-14 Tyrone
Ballinderry 1-21 1-4 Kilrea
Bellaghy 1-21 1-4 Kilrea
Glenullin 3-10 0-10 Castledawson
Magherafelt 0-10 0-6 Lavey
Slaughtneil 0-12 0-9 Dungiven
Derrygonnelly 1-10 1-7 Lisnaskea
Teemore 1-8 1-7 Brookeboro
Newtownbutler 3-6 1-11 Enniskillen Gaels