A late Ryan McHugh goal snatched victory for Donegal u21's as Maxi Curran's side beat the defending Ulster Champions 1-7 to 0-9 in Ballybofey and brought an end to Cavan's hopes of five in a row.
It was their first defeat in the championship since the 2010 Ulster Final.
Sixteen minutes into the game Donegal were crusing 0-5 to 0-1 up and should have been further ahead giving their dominance and missed scoring opportunities.
Ciaran Thompson helped himself to three of those Donegal points.
Cavan came back into it before the break with three scores and then lead 0-7 to 0-5 ten minutes into the second half.
Donegal's first point for twenty four minutes was a free from Ryan McHugh eleven minutes into the latter half.
Donegal were awarded a penalty midway through the half after Jack O'Brien was fouled in a group of Cavan defenders.
The resulting low strike to the right from captain Ryan McHugh was saved by Cavan keeper Mark Fegan.
The Kilcar man would however make up for that missed effort, a free in the closing seconds of injury time lobbed in from Conor Parke was caught by Thompson who passed to McHugh to send the ball into the back of the net and give Donegal a dramatic victory.
Monaghan await Donegal in two weeks time in the semi final after the Farney County beat Derry 0-15 to 1-8
Tyrone also progressed to the last four with 0-17 0-7 win over Fermanagh.
The O'Neill county will meet the winners of Armagh Antrim in the semi finals.