Donegal moved a step closer to claiming their first NFL Division One title by ending Kildare’s campaign with a 1-13 to 1-11 defeat at Croke Park.
In front of a disappointing attendance of 23,209, the Tir Chonaill men had the match winner in corner forward Colm McFadden who tallied up six points.
Kildare struck eight first half wides but they were only 0-07 to 0-04 behind at the break thanks to three John Doyle points.
Substitute Kevin McMenamin rasped home an early Donegal goal on the restart, and while Doyle netted from the penalty spot and Donegal's Kevin Cassidy saw red, the Ulstermen still held on.
Donegal, competing in their first league semi-final since 1998, were forced into a change before the throw-in as Rory Kavanagh cried off due to a groin injury and was replaced in the half-forwards by Christy Toye.
Donegal also suffered a considerable blow when they lost the services of star forward Brendan Devenney (leg) in the 20th-minute.
But in St Michael's marksman McFadden, they had a ready made talisman and his four points helped shoot the northerners into a 0-07 to 0-04 half-time lead.
They were 0-03 to 0-00 in front after 12 minutes with defender Paddy McConigley, McFadden and Michael Hegarty each on target.
Kildare, whose last semi-final appearance was back in 1997, kept in touch largely through Doyle, but their top scorer did miss some kickable chances.
The Lilywhites were also hit by injury as they lost imposing midfielder Killian Brennan to a first half knee injury.
McFadden made full use of a defensive error to make it 0-04 to 0-01 and he added two more points to send his side into a double scores lead.
Doyle and the busy Tadhg Fennin replied for John Crofton's side, before Brian Roper and Doyle traded late points as the half petered out.
Doyle opened the scoring in the second half, but Donegal, with former All-Star Adrian Sweeney rediscovering some of his 2003 form, still remained in control.
Thrown on as a replacement for Roper, Sweeney immediately arced over a point from 35-metre and played a role in McMenamin's goal.
Sweeney and McFadden exchanged passes before McMenamin was worked into space and he netted with a confident finish to the left of Kildare stopper Enda Murphy.
That strike helped Donegal into a 1-09 to 0-05 advantage and Kildare were in serious trouble.
They can take considerable credit for the comeback bid they mounted, however, with immediate points from Padraig O’Neill, Fennin (free) and substitute Michael Conway, whose dipping shot forced Paul Durcan to tip the ball over his crossbar.
Then came Doyle's penalty as he coolly slotted home, taking his tally to 1-05, after corner forward O’Neill had been upended by Barry Monaghan.
There was real life to the tie now as Kildare trailed by only 1-10 to 1-08, despite only three of their points coming from play.
Donegal's world was in danger of crumbling all around them as they had midfielder Cassidy sent off, six minutes from time, for his second bookable offence.
Cassidy, who had pointed just minutes earlier, could miss the final against Mayo as he was also red carded in his county's Dr McKenna Cup semi-final win over Armagh.
Donegal supporters breathed a side of relief as their side rallied again with scores from McFadden and Hegarty and they were enough to put the seal on their seventh win in eight league games this season.