The sides were level at the break (Monaghan 0-10 Donegal 1-7), Niall Campbell with the goal from a penalty in the sixth minute of stoppage time.
They were level on two further occasions in a tough second half before three late points from Lee Henderson eased them through.
Monaghan finished with 14 players after Trevor Hilliard picked up a second yellow card in stoppage time.
DONEGAL: P Burns, B Harrigan, J Boyle, A McDermott, C McDermott, J McGee, J Donnelly, S McVeigh, P Doherty 0-1, E McDermott, D Cullen 0-2, R McDermott, L Henderson 0-8 (4f), E Organ 0-1, N Campbell 1-4 (1-0p, 4f). Sub: K Campbell for S McVeigh.
MONAGHAN: G Ruddy, P Murphy, J McHugh, M Treanor 0-1, P Meegan, P Treanor, S Loftus, G Boyd, T Hilliard 0-2, C McKenna 0-1, S Lambe 0-9 (7f), E MacSuibhne 0-2, M Lennon, P Boyle, B McGuigan. Subs: J Lacey for P Murphy, G Baxter for P Boyle.
Referee: D Magee (Down).