Jim McGuinness' Donegal stayed on course for a fourth Ulster final appearance in a row after a 1-11 to 0-11 victory over league finalists Derry at Celtic Park.
The 2012 All-Ireland champions trailed by two at the break but 1-5 unanswered at the start of the second half put them in control and a blunt Derry attack couldn't reel them in.
Both sides swapped early scores in a very physical opening to the game before Paddy McBrearty blazed the game's first goal chance wide with just Tom Mallon to beat.
Mark Lynch scored his second consecutive free before Brian McIver's men were dealt a severe blow when Fergal Doherty tangled with his own man and was replaced by Niall Holly.
Christy Toye and Emmet Bradley swapped points before Karl Lacey raised a with flag to make it three points apiece after 20 minutes.
Substitute Niall Holly was taking his chance and scored a beautiful curling point from the right wing before Emmett Bradley doubled their lead.
McBrearty dropped a number of efforts short and Derry capitalised with a point through Ciaran McFaul.
Michael Murphy, who along with Com McFadden was very subdued, got the final score of a very attritional half but the home side led by two at the break.
Donegal made an ideal start to the second half as Andy Thompson stole forward again and pointed from 30 yards and that was quickly followed by a Donegal goal through Leo McCloone after great work from Frank McGlynn.
A brilliant brace of scores for Michael Murphy and suddenly Donegal were four ahead.
They made it 1-5 without reply after the break with a point from McBrearyt and a Murphy free before Mark Lynch finally got the home side off the mark in the second half from a free.
Benny Heron and Emmett Bradley kicked points to make it a three-point game with 10 minutes remaining.
Donegal restored a bit of breathing space with a fine point from Martin McElhinney but Heron responded with a well-struck 45.
A booming point from Mrk Lynch reduced Donegal's lead to just two points in the 63rd minute.
Leo McCloone kicked Donegal's first point in 18 minutes on the stroke of full-time to make it a one-score game.
James Kielt got black-carded for a hand-trip having been yellow carded earlier and should have received a red card but didn't.
Derry tried desperately yo score an equaliser but a goal chance never came and Donegal advance to an Ulster-semi-final against wither Fermanagh or Antrim
Source: Irish Independent