Derry, inspired by the brilliant Paddy Bradley, came from behind to win an absorbing Ulster SFC tie at Ballybofey.
The NFL champions recovered from a wasteful first half to stamp their authority on the contest after the break, and ran out narrow deserved winners in front of a crowd of 17,237.
Derry moved three points clear when Eoin Bradley got in for a 12th minute goal when Joe Diver's searching delivery was misjudged by Eamon McGee, and the Glenullin man got in behind to take, swivel and shoot low to the net in one movement.
But the Oak Leafers failed to build on that early advantage, squandering a host of opportunities, and shooting a woeful tally of 11 wides in the first half alone.
Donegal gradually began to get on top in the middle third, chiefly through the utilisation of wing-forward Rory Kavanagh as an effective ball-winner.
And the high ball ploy worked a treat, with All Star full-back Kevin McCloy struggling against the rangy Colm McFadden and Michael Murphy.
David Walsh was also an important creative influence on the right flank, setting up scores for McFadden and Kavanagh.
And in the 30th minute, Niall McCusker's foul on Christy Toye won a penalty for Donegal, which teenager Murphy expertly smacked home.
The hosts led by 1-07 to 1-04 at the break, but a rejuvenated Derry side started to chip away at the deficit with a more direct style after the break.
Paddy Bradley, target man and finisher supreme, punished virtually every defensive lapse, and the Donegal challenge began to wilt.
They kept in touch with superb scores from McFadden and Murphy, but the gap was closing all the time, and when Bradley put the Oaks back in front for the first time since the 19th minute with ten to play, their supporters were in fine voice.
The All Star full-forward nailed on a couple of late frees to tighten Derry's grip, and with time running out, Donegal needed a goal to escape.
McFadden floated a tempting free into the danger area but Enda Muldoon rose high to field and send Paddy Crozier's side into the semi-finals.
Donegal: P Durcan, K Lacey, N McGee, E McGee, F McGlynn, B Monaghan (0-01), B Dunnion, K Cassidy (0-01), N Gallagher, C Toye, M Hegarty, R Kavanagh (0-02), M Murphy (1-01, 1-00 pen), C McFadden (0-06, 3 frees), D Walsh (0-01).
Substitutes: B Roper for Hegarty, K Rafferty for Toye.
Derry: J Deighan, K McGuckin, K McCloy, F McEldowney, G O'Kane, N McCusker, M McIver, F Doherty, J Diver, M Lynch, P Murphy, E Muldoon (0-01), C Gilligan (0-02, 2f), P Bradley (0-10, 7f), E Bradley (1-01).