Rory Gallagher’s side have lost four in a row – but their better score difference means they will now play Dublin in the Allianz League Semi-Final.
Donegal had led here by three points at half-time and were seven points up at one stage in that half.
Monaghan stormed back to tie the game for the first time with five minutes to go and in the last minute appeared to have gone into the lead but a Kieran Hughes free from 20 metres was waved wide by the umpire.
However their winner did come – and it came three minutes into injury time from Colin Walshe to send the home crowd wild.
Donegal hit just two scores in the second half, one from a free, and players were repeatedly turned over by a Monaghan side wanting to avoid relegation to Division 2.
The home side had rattled off three points late in the first half to narrow the gap after Rory Gallagher’s side appeared to be cruising.
Donegal had led 1-04 to no score with Martin McElhinney netting in the 20th minute.
But Monaghan found the net themselves a minute later through Daniel McKenna.
Donegal added three more points, with McKenna adding to his score, to lead 1-06 to 1-01.
However Monaghan narrowed the gap to two points with a minute left of the first half.
But Patrick McBrearty got a crucial score just before the break to give Donegal a three point margin 1-07 to 1-04.
Monaghan were much the better team after the break, stayed within touching distance of Donegal before drawing level – and taking that injury time winner.
Tags: