Tyrone held on in a tense battle to defeat Kildare by 1-11 to 0-12 and set up a Round 4 Qualifier clash with Meath.
Mattie Donnelly rifled home a tenth-minute goal and Sean Cavanagh scored three points as Tyrone built up a 1-06 to 0-04 lead by the interval.
Kildare goalkeeper Shane Connolly saved a Stephen O’Neill penalty after Paul Cribbin had equalised, but despite John Doyle’s six points tally, Tyrone finished strongly with scores from Donnelly, Cavanagh and Martin Penrose to progress.
Kildare’s challenge faded in the closing stages, after they lost full back Peter Kelly to a second yellow card eight minutes from the end.
Referee Joe McQuillan was jostled by angry supporters as he was escorted by gardaí from the pitch to the dressing room area.
Johnny Doyle hoisted a magnificent score after just 15 seconds, but, having fluffed a couple of short kick-outs, the Lilywhites found themselves behind by the seventh minute, Darren McCurry and Sean Cavanagh on target from frees.
Niall Kelly had a chance of a goal, but blasted over to cut the deficit.
Moments later, when Tyrone crafted an opportunity to go for the net, they were ruthlessly clinical.
O’Neill broke the ball into the path of wing-back Ryan McKenna, who picked out Mattie Donnelly’s charging, untracked run through the middle with a simple pass inside.
The Trillick man did the rest with a perfectly placed finish past Connolly.
Tyrone were coughing up a generous supply of scoring chances, but the Kildare attack was back to its wasteful old ways, hitting seven wides inside the opening 20 minutes, although Doyle did narrow the gap with a sweetly struck 45 metre free.
Donnelly and Cavanagh both nailed spectacular scores as Tyrone’s confidence levels steadily rose, and they were able to spot and exploit holes in a Kildare defence fortified by extra bodies.
With sure handling and more efficient finishing, the Red Hands were six points ahead by the half-hour mark, their opponents’ laboured build-up almost always coming to nothing as the wides count rose to nine.
Doyle did land another quality point, but at the break, the Leinster men trailed by 1-06 to 0-04.
But they made a furious start to the second half, hitting five points inside the opening eight minutes to go level.
Doyle, with two frees, Padraig O’Neill, Niall Kelly and substitute Paul Cribbin all split the posts as Tyrone’s apparently healthy lead was wiped away by the green-clad Lilies.
Tyrone were awarded a 47th minute penalty for Emmet Bolton’s foul on Mark Donnelly, but goalkeeper Connolly dived to his right to save superbly from O’Neill’s spot kick.
McCurry finally registered the Red Hands’ opening score of the second half after almost 15 minutes, and while that was quickly cancelled out by Doyle, Mickey Harte’s men found their rythmn once again for Joe McMahon to send Mark Donnelly through for a point, and Sean Cavanagh tapped over a free to make it a two points game with ten minutes to play.
The game was turning decidedly back in the Ulster side’s favour at that stage, and when Kildare full back Peter Kelly picked up a second yellow card in the 63rd minute, the home side faced a crisis.
Aidan Cassidy came into the game to give Tyrone the edge at midfield, and scores from Peter Harte and Eoghan O’Flaherty edged them four ahead.
The Lilywhite desperately needed a goal to salvage their season, but could only manage points from Eoghan O’Flaherty and Seanie Johnston.
Kildare: S Connolly, D Hyland, P Kelly, H McGrillen, E Callaghan, M O’Flaherty, Daniel Flynn, Daryl Flynn, P O’Neill (0-1), E Bolton, N Kelly (0-2), E O’Flaherty (0-1), J Doyle (0-6, 4f), T O’Connor, P Brophy.
Subs: P Cribbin (0-1) for Daniel Flynn, S Hurley for E Callaghan, S Johnston (0-1, f) for O’Neill, A Smith for N Kelly, E Doyle for O’Connor
Tyrone: P McConnell, A McCrory, C Clarke, C McCarron, R McKenna, P Harte (0-1), C Gormley, C Cavanagh, S Cavanagh (0-4, 3f), Mattie Donnelly (1-1), Mark Donnelly (0-1), Joe McMahon, D McCurry (0-3, 3f), S O’Neill, M Penrose (0-1, f).
Subs: A Cassidy for C Cavanagh, D Carlin for McKenna, K Coney for McCurry, C McAliskey for O’Neill, Justin McMahon for McCarron
Referee: J McQuillan (Cavan)