Armagh secured a return to Division 2 of the Football League as they edged out neighbours Louth 0-10 to 0-8 at the Athletic Grounds.
Louth's Ryan Burns finished with six points but his team's chances were hit by the 47th-minute dismissal of Dessie Finnegan after his second booking.
The sides were level at 0-5 apiece at half-time with Jamie Clarke having had a penalty saved by Neil Gallagher.
Late frees by Aidan Forker and Ciaran O'Hanlon secured Armagh's narrow win.
Points from Clarke, Ethan Rafferty and O'Hanlon helped Armagh take a 0-3 to 0-1 lead but Burns's accuracy contributed to Louth moving 0-5 to 0-4 ahead before Tony Kernan levelled in first-half injury-time.
O'Hanlon edged Armagh ahead after the restart but Louth fought back to lead 0-7 to 0-6 as Burns continued to kick some nice points.
However, the two late frees sealed Armagh's win as they secured promotion with a game to spare ahead of next weekend's contest against Sligo.
Fermanagh will also hope to clinch their promotion spot by beating Wexford on Sunday.
Richard O'Callaghan has been ruled out of the Wexford Park contest by injury but Tomas Corrigan has shaken off a knock and will start.
Fermanagh will be away to Clare in their final Division 3 round-robin game next weekend.
Armagh: P Morrison; M Shields, C Vernon, M Murray; C McKeever, F Moriarty, A Mallon; A Findon, P Carragher; T Kernan, M McKenna, A Forker; J Clarke, E Rafferty, A Murnin.
Fermanagh: T Treacy; M Jones, T Daly, M O'Brien; D McClusker, R McCluskey, N Cassidy; E Donnelly (capt), R Jones; P McClusker, C Flaherty, B Mulrone; T Corrigan, Sean Quigley, R Corrigan.
Football League fixtures - Saturday 28 March
Dublin 0-08 0-04 Derry
Laois 1-09 1-12 Kildare
Cavan 1-08 1-03 Westmeath
Down 0-10 2-11 Meath
Armagh 0-10 0-08 Louth
Sunday 29 March
Cork v Mayo (14:00 BST)
Kerry v Monaghan (15:00 BST)
Donegal v Tyrone (15:00 BST)
Roscommon v Galway (13:30)
Wexford v Fermanagh (13:00)
Tipperary v Sligo (15:00)
Limerick v Clare (15:00)
London v Waterford (13:00)
Antrim v Wicklow (15:00)
Carlow v Leitrim (15:00)
Longford v Offaly (15:00)