Donegal came from behind to score a 1-11 to 0-11 win over Derry in the Ulster Senior Football Championship at Celtic Park.
Emmet Bradley and Mark Lynch each scored two points to help Derry to a 0-06 to 0-04 interval lead.
But Donegal stepped up the intensity, going ahead with a Leo McLoone goal.
Derry came from six behind to close to gap to two, but Donegal’s massed defence helped them survive for a semi-final spot against either Fermanagh or Antrim.
It was vintage Donegal in the second half, as they reverted to the formula of intensity and hunger that saw them lift Sam Maguire in 2012.
Nevertheless, Derry never gave up, and were desperately seeking an equalising goal as the seconds ticked away towards the final whistle.
In front of a crowd of 15,883, Mark Lynch’s early free was cancelled out by Darach O’Connor, whose pace saw him race away from marker Sean Leo McGoldrick for a fisted point.
Donegal had a golden goal chance when Anthony Thompson crossed into space, but Paddy McBrearty blazed wide.
The Oak Leafers suffered a massive blow after just 14 minutes when veteran midfielder Fergal Doherty was forced out of the action by injury.
Christy Toye instigated and finished the move that brought Donegal level in the 18th minute, after Lynch had converted his second free.
Toye was also the creative influence for a point from Karl Lacey, tasked with the job of shadowing the roving Lynch.
Both sides adopted a patient approach, confronted by massed defences, but it was Derry who fared better, carefully carving the openings for substitute Niall Holly, Emmet Bradley and Ciaran McFaul to hit the target and open out a three points lead by the 33rd minute.
Donegal went 15 minutes without a score, until skipper Murphy converted a 13-metre free, and they were feeling the absence of midfield pair Neil Gallagher and Martin McElhinney, both pre-match cry-offs.
Derry took a 0-06 to 0-04 lead into the interval, but Donegal were ahead within four minutes of the restart.
Thompson narrowed the gap, before Leo McLoone hit the net with a delightful finish after Murphy and Frank McGlynn had combined in the build-up.
Donegal had lifted the intensity to a new level, and Derry struggled to cope with the high tempo approach of their opponents, just as they had in the Allianz League final against Dublin.
Murphy launched a wonderful point from a sideline kick on the 45-metre line, and a series of explosive attacks had the Donegal defence stretched to breaking point.
McBrearty should have nailed a second goal when he got on the end of a defence-splitting move involving McLoone, substitute Martin McElhinney and McGlynn, but again his shot flew over the bar.
However, now Donegal led by 1-09 to 0-06, and looked capable of pushing on for a big win.
But Derry, to their credit, battled their way back into the game, with Lynch, McGoldrick, Benny Heron and McFaul lifting their game.
They shot a string of points through Lynch, Heron and Bradley to narrow the deficit down to two points.
But the final eight minutes witnessed a classic Donegal shut-out.
They swarmed all over the Derry attack, with all 15 players back to play the part in the defensive effort.
It was a high-risk strategy, but it looked safe and secure in the hands of Jim McGuinness’ side, and it worked a treat, with a breakaway raid ending with McLoone clipping over the insurance point.
Derry finished with 14-men, after substitute James Kielt received a black card, and could not be replaced, due to a previous booking.
Derry: T Mallon, D McBride, C McKaigue, G McKinless, K Johnson, G O’Kane, SL McGoldrick, F Doherty, P Bradley, C McFaul (0-01), M Lynch (0-04, 3f), E Bradley (0-03, 2f), E Lynn, E McGuckin, C O’Boyle.
Subs: N Holly (0-1) for Doherty, R Bell for O’Boyle, B Heron (0-2, 1 ‘45) for Holly, O Duffy for Johnson, J Kielt for McGuckin
Donegal: P Durcan, E McGee, N McGee, P McGrath, F McGlynn, K Lacey (0-01), A Thompson (0-01), C Toye (0-01), O MacNiallais, L McLoone (1-01), R McHugh, D O’Connor (0-01), P McBrearty (0-01), M Murphy (0-04, 2f), C McFadden.
Subs: M McElhinney (0-01) for Toye, N Gallagher for O’Connor, D Walsh for MacNiallais, L Keaney for McBrearty, D Molloy for McFadden
Referee: J McQuillan (Cavan).