Fermanagh ran Donegal ragged to come back from four points down at half-time to win by three in O'Donnell Park, Letterkenny.
It was a sweet victory for Rory Gallagher's men, who remain unbeaten in Division Two. They were superb throughout, but especially in the second half as they hit 0-9, 0-8 from play, against a very poor Donegal performance.
Fermanagh showed the greater hunger throughout as Donegal were not helped by playing with 14 men for most of the game and 13 in the final 10 minutes.
In the final quarter they were excellent in turning Donegal over, and in half-back Ciaran Corrigan they had a star. He finished the tie with four superb points.
Donegal can have no excuses and there will be some postmortems after their second defeat in-a-row.
Donegal started well with the opening two points on five minutes, Jamie Brennan notching the first and Michael Langan hooking over a free from 45m.
Fermanagh- with all 15 players back defending - got on the scoreboard through Conall Jones but Donegal stretched ahead 0-5 to 0-1 with points from Jason McGee, Oisin Gallen and a Ciaran Thompson free after Ryan McHugh was fouled.
But then Donegal were dealt a severe blow on 20 minutes when Caolan McGonagle picked up a second yellow card to reduce Donegal to 14.
Sean Quigley pointed a free and Ryan McHugh was denied a point after he was fouled. He had hit the target but the referee pulled the play back for a free, which came back off a post.
Ciaran Corrigan reduced the deficit to two but Donegal hit back with Niall O'Donnell involved as Jason McGee found the range and Eoghan Bán Gallagher tore through the middle to point.
Michael Langan landed another free to stetch the lead before Sean Quigley punched a point on the stroke of half-time as Donegal led by four.
There was an unusual incident at the start of second half when five players (three Fermanagh and two Donegal) were yellow carded before the ball was thrown in.
Michael Langan had a Donegal free inside two minutes of the restart, but they would not score again until the 56th minute.
Fermanagh came back into the contest as they choked Donegal. The impressive Ciaran Corrigan hit two points while Sean Quigley cut the deficit to two on 50 minutes.
After Michael Langan had a second point from a free, Fermangh responded with Aidan Breen from distance. Then Donegal suffered another blow as Stephen McMenamin was black carded and Sean Quigley pointed a free to leave just a point in it on 59 minutes.
A couple of minutes later Paul McCusker had the sides level. With seven minutes left the impressive Ciaran Corrigan put Fermanagh ahead and Aidan Breen fisted another after a great run from corner back Jonny Cassidy.
Donegal missed a 20m free and were overturned on their next attack for Ultan Kelm to run the length of the pitch to fist another and a three point lead.
It was to be enough in the end and the Maguire men went home with a famous win.
Donegal: Mark Anthony McGinley; Stephen McMenamin, Brendan McCole, Eoghan Bán Gallagher; Caolan Ward, Eamonn Doherty, Ryan McHugh; Hugh McFadden, Jason McGee (0-02); Niall O'Donnell, Ciaran Thompson (0-01,f), Caolan McGonagle; Oisin Gallen (0-01), Michael Langan (0-4,0-04f), Jamie Brennan (0-01) .
Subs: Paul Brennan for J McGee 51; Eoin McHugh for E Doherty 56; Leo McLoone for O Gallen 62; Peadar Mogan for Langan 72
Fermanagh: Thomas Treacy; Jonny Cassidy, Lee Cullen, Kane Connor; Ultan Kelm (0-01), James McMahon, Ciaran Corrigan (0-04); Che Cullen, Ryan Jones; Ryan Lyons, Declan McCusker, Aidan Breen (0-02); Daniel Teague, Conall Jones (0-01), Sean Quigley (0-04,0-02f).
Subs: Kevin McDonnell for Teague 32; Paul McCusker (0-01) for R Lyons 44; Eamon McHugh for McDonnell 65; Ryan Lyons for Breen 72; Tiarnan Daly for J Cassidy 74