Stefan Campbell got the winning point with the last kick to secure Armagh's first league win of the season.
Campbell, who top-scored with 1-5 including the all-important goal in the 15th minute, nailed a spectacular point from 40 metres.
Tomas Corrigan thought he had grabbed a draw for the visitors with a long-range free in the third minute of stoppage time in the Athletic Grounds.
But Campbell snatched the win in what was a bad-tempered Ulster clash.
Armagh coasted into a 1-3 to 0-1 lead after 15 minutes, Campbell hitting 1-2 in the first half.
Colm Watters and Niall Grimley also scored quality long-range points for Armagh in the early stages before Campbell pounced, gathering Micheal McKenna's long ball in and rolled the defender, drilling the ball low with his left foot across goal into the far corner.
Sean Quigley's sixth-minute free was all Fermanagh had to show for their early efforts but they slowly warmed to the task and outscored the home side by 0-5 to 0-2 before the break.
Tomas Corrigan and Quigley nailed frees before Ruairi Corrigan hit their first from play, a well-worked score after 24 minutes.
Michael McKenna scored from play but Fermanagh responded with the last two points of the half, newcomer Paddy Rehill fisted over the bar to leave them trailing 1-5 to 0-6.
A row involving up to 20 players erupted in the wake of Tony Kernan's black card for tripping Quigley. Tempers flared as referee Cormac Reilly blew the half-time whistle and the row continued as the players made their way down the tunnel.
Reilly took little action apart from booking Aidan Forker and James McMahon before the second half started.
Late, cynical hits marred the third quarter but Aidan Breen and Tomas Corrigan drew Fermanagh level after 43 minutes.
Micheal McKenna ended a 22-minute scoring drought for Armagh to restore their lead but a Quigley free and a superb point from near the sideline from the impressive Aidan Breen put Fermanagh ahead for the first time after 53 minutes.
Armagh rallied through scores from twin threats Campbell and McKenna and while Tomas Corrigan levelled it again, Campbell hit his first from play to nudge Armagh ahead 1-9 to 0-11.
Tomas Corrigan thumped over a long-range free which looked right at the edge of his range and thought he'd snatched a draw, but Campbell nailed a superb winner from 40m with the last kick of the game.
Armagh: M McNeice; S Heffron, C Vernon, A Mallon; S Forker, A Forker, M Shields; A Findon, N Grimley (0-1); S Campbell (1-5, 3f), M McKenna (0-3), S Connell; C Watters (0-1), C O'Hanlon, A Murnin
Subs: G McParland for Murnin (20), T Kernan for O'Hanlon (21), N McConville for Kernan (BC, 35), J Morgan for Watters (BC, 44), J McElroy for Grimley (55), J Feeney for McConville (63)
Fermanagh: C Snow; M Jones, C Cullen, N Cassidy; P Rehill (0-1), J McMahon, A Breen (0-2); E Donnelly, D Kelly; B Mulrone, R Jones, K Connor; R Corrigan (0-1), S Quigley (0-3, 3f), T Corrigan (0-5, 3f)
Subs: R O'Callaghan for Kelly (55), P McGovern for Rehill (58), D Teague for Connor (63), E McManus for R Corrigan (68)
Referee: Cormac Reilly (Meath)
ALLIANZ FOOTBALL LEAGUE
Dublin 1-14 0-16 Monaghan
Armagh 1-10 0-12 Fermanagh
Sunday - 14:00 GMT (unless stated)
Cork v Roscommon, Pairc Ui Rinn
Donegal v Mayo, Ballybofey
Down v Kerry, Pairc Esler
Derry v Galway, Celtic Park
Laois v Tyrone, O'Moore Park
Meath v Cavan, Pairc Tailteann
Longford v Kildare, Pearse Park
Offaly v Sligo, Tullamore
Westmeath v Tipperary, Mullingar
Limerick v Clare, Newcastlewest
Wexford v London, Wexford Park, 13:00
Antrim v Leitrim, Corrigan Park
Carlow v Waterford, Dr Cullen Park
Louth v Wicklow, Gaelic Grounds