David Clifford's goal separated the sides as Kerry dented Armagh’s hope of reaching the Allianz Football League final.
It was a hectic game with some fantastic scores, big hits - albeit with plenty of poor shooting - and played at championship pace.
Kerry led Armagh by double scores at the break and the Kingdom could have been further ahead had any of their eight scoreable wides went over.
It was feisty encounter in front of an almost sell-out crowd (11,314) at the Athletic Grounds, which was delayed by ten minutes due to the volume of traffic.
The Orchard, wearing black, took the lead in the opening minute, with Tiernan Kelly on target but it was the Kingdom who picked off the next six scores before Armagh replied.
There were plenty of interesting battles, including that between Armagh’s James Morgan and Paudie Clifford and Kerry’s Jason Foley and Rian O’Neill.
Jack Savage got Kerry off the mark and, with midfielder Diarmuid O’Connor the chief provider, Kerry rattled off impressive scores with Clifford, Savage again, O’Connor and the lively Tony Brosnan stretching Kerry’s lead to four points with only 15 minutes gone.
Kerry’s hard working defence disrupted Armagh’s often over-complicated attacks, with Jack Barry and Clifford tracking back to make important interceptions.
Stephen O’Brien’s point was a score of class after Barry’s huge midfield mark and Savage’s third point put some daylight between the teams.
But the Orchard finished the half strongly, scoring three of the next four points and they might have nicked a goal had Greg McCabe not passed back to Morgan.
Kelly grabbed his and Armagh’s second point, then Morgan fired over and Rian O’Neill (free) scored the Orchard’s fourth point but not before Brian O Beaglaioch notched Kerry’s eighth point.
And Kerry were forced to start the second half with 14 men after Jack Savage’s ten-minute sin-bin at the end of the first period.
The league leaders returned after the break with David Clifford replacing Killian Spillane, while Armagh made a raft of changes, including introducing Stefan Campbell who floated over a great score with his first touch.
Paudie Clifford hit back with a point before brother David received a lovely pass from the brilliant Stephen O’Brien and as keeper Ethan Rafferty lost his footing, the All-Star fired into the empty net.
This gave Kerry a six-point lead and Armagh were forced to chase the game, the hosts' shooting let them down.
But Armagh started dominating the Kerry kick-out and Rian O’Neill, Rory Grugan and Jarly Og Burns and Greg McCabe pulled back points and Jason Duffy forced a goal-line save from goalkeeper Shane Ryan.
But Kerry’s defence held firm and the class of David Clifford (1-02) saw the Kingdom over the line, their place in the final already secure.
Armagh: Ethan Rafferty, Greg McCabe (0-01), James Morgan (0-01), Aidan Forker, Aaron McKay, Niall Rowland, Jarly Og Burns (0-01), Ciaran Mackin, Ben Crealy, Jemar Hall, Ciaron O’Hanlon, Tiernan Kelly (0-02), Rian O’Neill (0-05, 0-4 frees, 0-1 mark), Andrew Murnin, Rory Grugan (0-02, frees).
Subs: Jason Duffy for O’Hanlon (17’), Stefan Campbell (0-01) for Hall (ht’), Connaire Mackin for Rowland (ht’), Niall Grimley for Ciaran Mackin (49’), Conor O’Neill for Murnin (54’)
Kerry: Shane Ryan, Dylan Casey, Jason Foley, Tom O’Sullivan, Graham O’Sullivan, Tadgh Morley, Brian O Beaglaioch (0-01), Diarmuid O’Connor (0-01), Jack Berry, Paudie Clifford (0-02), Jack Savage (0-05, 0-2 frees), Adrian Spillane, Tony Brosnan (0-01 mark’), Killian Spillane, Stephen O’Brien (0-01).
Subs: David Clifford (1-02) for Spillane (ht’), Paul Geaney for Brosnan (54’), Michael Burns for T O’Sullivan (61’), Joe O’Connor for Barry (64’), Greg Horan for O’Brien (70’).
Referee: Martin McNally (Monaghan).