Kerry saw off a determined Tyrone by 0-18 to 1-11 in an exciting All-Ireland Football semi-final at Croke Park.
After trailing for most of the game, the Ulster county dramatically pulled level with just over 10 minutes to go.
Peter Harte confidently converted a penalty and Mark Bradley added a point to tie the game at 1-11 to 0-14.
Tyrone felt they should have had a second penalty soon afterwards but referee Maurice Deegan ruled that substitute Padraig McNulty had dived.
The Kingdom led by only a point at the time of the controversy and it certainly appeared that McNulty had been bundled over but Deegan instead opted to book the Tyrone player for play-acting.
Kerry added three more points to progress to the 20 September final in which they will play the winners of next weekend's clash between Dublin and Mayo.
Tyrone will reflect on a number of misses as they created the better goal chances.
When they were just two points down early in the second half, Sean Cavanagh's lovely ball sent Bradley in but his shot was superbly saved by Kerry goalkeeper Brendan Kealy.
|Kerry v Tyrone facts|
|The first Championship game between the counties was the 1986 final which Kerry won 2-15 to 1-10||Mickey Harte's Tyrone beat the Kingdom in the 2005 and 2008 All-Ireland finals|
|The semi-final was veteran manager Mickey Harte's 236th match in charge of Tyrone Seniors||Kerry are the first defending champions to reach the final since they did it themselves in 2008|
Mickey Harte's team, rated as 4-1 outsiders for the semi-final, made an encouraging start with Darren McCurry scoring the game's first two points.
The second came after Conor McAliskey's goal attempt had been superbly blocked by Marc Ó Sé.
Two points by half-forward Johnny Buckley quickly levelled matters and Kerry went on to lead five points to three through Stephen O'Brien and James O'Donoghue, Ronan McNabb having advanced to score Tyrone's third.
Kerry defender O Se's 14th All-Ireland semi-final lasted just 15 minutes as he was shown a black card by referee Maurice Deegan for a rugby-style challenge on McAliskey.
Tyrone keeper Niall Morgan slotted over the resulting free from wide out on the left.
The Ulster side could well have had a couple of goals in the first half with McAliskey firing over when McCurry had been well-placed and unmarked to his right.
Kerry's O'Brien and O'Donoghue exchanged points with Bradley and Mattie Donnelly to tie things up at seven points each.
But the Munster men went in a point up through skipper Kieran Donaghy.
McAliskey levelled the contest again but two quick scores by Colm Cooper and a fisted effort by sub Paul Geaney put Kerry three up.
McCurry reduced the deficit and then came the Ulster county's next goal chance with Kealy's strong right hand keeping out Bradley's shot.
Ronan McNamee's game ended when he was black-carded for taking out Kerry star Cooper.
Tyrone will wonder how Kerry defender Shane Enright escaped with a yellow card for pulling down Harte.
The game's only goal came in the 60th minute when sub Barry Tierney was barged over, Harte scoring a superb penalty.
McCurry missed a free but Bradley then levelled the match at 0-14 to 1-11.
After Anthony Maher restored Kerry's lead, then came the game's big talking point as Aidan O'Mahony appeared to bundle over McNulty only for Deegan to give the Tyrone sub a yellow card.
Emboldened by that escape, Geaney (2) and Barry John Keane scored as Kerry tagged on three more points to claim the victory.
Kerry scorers: Johnny Buckley (0-4), James O'Donoghue (0-4), Paul Geaney (0-3), Colm Cooper (0-2), Anthony Maher (0-1), Stephen O'Brien (0-1), Donnchadh Walsh (0-1), Kieran Donaghy (0-1), Paul Geaney (0-3), Barry John Keane (0-1).
Tyrone scorers: Darren McCurry (0-3), Conor McAliskey (0-2), Niall Morgan (0-1), Ronan McNabb (0-1), Peter Harte (1-0), Colm Cavanagh (0-1), Matthew Donnelly (0-1), Mark Bradley (0-2).