Armagh produced another excellent away display to beat Roscommon 1-17 to 1-12 in the All-Ireland Football qualifier.
The Orchard County's more direct tactics and tight defence helped them lead 0-8 to 0-4 at the break as Tony Kernan and Ciaran McKeever impressed.
A Roscommon rally cut Armagh's lead to 0-10 to 0-8 but the home side couldn't get any closer.
Stefan Forker's 64th-minute goal ended Roscommon's hopes and Ciaran Murtagh's late goal was little consolation.
Despite their shock win over Tyrone last weekend, many pundits expected Roscommon to end the Orchard County's season at Dr Hyde Park.
But instead, Armagh held the edge for almost the entire contest apart from a brief 10 minute spell after half-time when Roscommon threw everything at Paul Grimley's side.
Both teams set up in defensive mode as they employed two-man full-forward lines but Armagh's more direct running and clever use of the long-ball tactic soon put them in control.
A Tony Kernan '45 cancelled out Diarmaid Murtagh's opening Roscommon point and Armagh led 0-5 to 0-2 after 16 minutes with corner-back Andy Mallon among the scorers after taking a superb pass from the Crossmaglen man.
Frees from Murtagh and Cathal Cregg cut Armagh's lead to the minimum by the 20th minute but the Orchard men ended the half on a high helped by a superb long-range free from Jamie Clarke and Aaron Findon's fisted point.
Clarke had been well contained by Roscommon captain Niall Carty in the first period but the classy Armagh forward responded by producing a big second half.
Roscommon did produce their best football of the match after the restart as they hit four out of six scores to cut Armagh's lead to two by the 45th minute.
Kevin Higgins's immediate point after the resumption perhaps could have been a goal as he fisted over when going low appeared an option.
However, Roscommon's apparent momentum was stopped by Clarke's 45th-minute score and the Crossmaglen star then set up his club-mate Kyle Carragher to increase the advantage again to four by the 51st minute.
Roscommon twice moved to within three of the Ulster county at 0-13 to 0-10 and 0-14 to 0-11 but Armagh never really looked in danger of being caught, with Aaron Kernan's 45th-minute introduction helping their cause as spaces began to appear in the Roscommon defence.
Armagh were already in control at 0-15 to 0-11 ahead when replacement Kernan's long ball was fisted to the net by another sub Forker six minutes from time.
A rare moment of sloppiness in the Armagh defence allowed Roscommon sub Murtagh to fly-hack to the net on 68 minutes but it mattered not as Grimley's side had done move than enough to book their place in the final 12 of the championship.
Armagh will play the Leinster runners-up in the final qualifying round on the weekend of 2-4 August.
Roscommon: D O'Malley; N Carty, S McDermott, N Collins; D Keenan, N Daly, C Cafferkey; C Shine (0-1), K Higgins (0-1); I Kilbride, E Smith (0-1), C Daly (0-1); S Kilbride (0-1), C Cregg (0-1f), D Murtagh (0-5). Subs: D O'Gara for C Cafferkey, R Stack for I Kilbride, D Smith (0-1) for E Smith, C Murtagh (1-0) for C Cregg, M Finneran for S Kilbride.
Armagh: P McEvoy; A Mallon (0-1), C Vernon, J Morgan; M Shields, B Donaghy, C McKeever; S Harold (0-2), A Findon (0-1); T Kernan (0-4), K Dyas (0-2), S Campbell (0-1); K Carragher (0-2), A Forker, J Clarke (0-3). Subs: E McVerry for A Forker, A Kernan for S Campbell, R Grugan (0-1) for T Kernan, S Forker (1-0) for K Carragher, F Moriarty for M Shields.
All-Ireland SFC qualifiers
Roscommon 1-12 1-17 Armagh
Clare 0-12 0-13 Kildare
All-Ireland Hurling Qualifier
Waterford 2-15 3-15 Wexford
Ulster MFC Final
Armagh v Donegal [Clones, 14:00]
Ulster SFC Final
Monaghan v Donegal [Clones, 16:00]
Dublin v Meath [Croke Park, 14:00]