While 13 points separated the sides, Cork limited their visitors to just a point in the second-half as Robert O’Shea producing a master class in free taking.
But late in the first-half Kerry had their noses in front with points from Luke Fitzell and Padraig Boyle to edge them into a 0-10 to 2-5 lead by the 24th minute.
Goals from Shane Dunne and then Boyle, who was proving a good outlet at full-forward, had been the catalyst for a Kingdom turnaround as they wiped out a six-points lead to draw level (0-9 to 2-3). By half-time, a brace from O’Shea ensured Cork were back in front, but facing a testing 30 minutes.
The hosts though responded well on the restart with four points in the first five minutes, three by O’Shea and one from the impressive Alan Cadogan, to settle nerves.
The Rebels wasted a number of good chances due to poor finishing while a great block from Kerry full-back Dougie Fitzell denied Pa O’Callaghan a goal in the 43rd minute.
O’Shea was in flawless form, however, and Kerry’s attack floundered, with a Boyle point in the 58th minute, tipped over by Cork goalkeeper Gary Minihane, all they had to show for their second-half efforts.
Cork travel to Thurles Sunday to face Tipperary with a place in the semi-final against Clare the prize.
Scorers for Cork: R O’Shea 0-13 (0-11f), A Cadogan 0-4, K McIntyre, C Murphy, P O’Callaghan, D Sweetnam 0-2 each.
Scorers for Kerry: P Boyle 1-3, S Dunne 1-0, R Heffernan, PJ Connolly, L Fitzell 0-1 each.
CORK: G Minihane; Alan Dennehy, C Barry, Anthony Dennehy; K Burke, C Spillane, C Walsh; S O’Keeffe, K McIntyre; A Cadogan, D Cahill, C Murphy; P O’Callaghan, D Sweetnam, R O’Shea.
Subs: D Morrissey for McSweeney (half-time), K O’Keeffe for Cahill (53), B O’Connell for McIntyre (56), P White for O’Callaghan (59), T Condon for Spillane (60).
KERRY: K Fitzgibbon; TB McElligott, D Fitzell, K O’Sullivan; M O’Halloran, D Collins, T Moore; E O’Connor, D Leahy; S Dunne, M Delaney, PJ Connolly; L Fitzell, P Boyle, R Heffernan.
Subs: P McGrath for Heffernan (8, injured), D Goulding for L Fitzell (51), V Savage for O’Connor (57), D Lynch for O’Halloran (60).
Referee: S Hourigan (Limerick).