Mayo survive under their own steam and deny Donegal final berth
Mayo 1-12 Donegal 0-13
Roscommon had already done them the favour by the time Mayo had bolted down their Allianz Division One status but the tonic of another hard-fought win will serve them well as they look towards a championship campaign.
The arrival of Aidan O'Shea off the bench in the 45th minute helped to change the mood in this game and certainly raised the temperature.
In a more intense, fractious atmosphere Mayo gained the upperhand with O'Shea helping to muscle out Donegal midfield dominance where Michael Murphy was having a big influence.
Donegal had led, after playing against the wind, at the interval by 0-11 to 1-5 and were four points clear when Cian Mulligan kicked them 0-13 to 1-6 clear in the 39th minute.
But they didn't score again as their challenge, so impressive in the first half, fragmented against increasing Mayo pressure.
Lee Keegan, Keith Higgins, Kevin McLoughlin and O'Shea were to the fore as yet another rescue effort was successfully conducted.
Donegal swept to an early 0-2 to 0-0 lead before referee Cormac Reilly, taking charge of a Mayo game for the first time since his 2014 All-Ireland semi-final replay against Kerry in Limerick angered many Mayo fans, awarded the home side a penalty in the third minute. Donegal goalkeeper Mark Anthony McGinley was adjudged to have taken down Cillian O'Connor though where the offence occurred was debatable.
Cillian O'Connor converted and Mayo added three points on the swell of it.
But Donegal completely took over after that with their youthful enthusiasm and movement really troubling a static Mayo.
By the 323rd minute they had levelled and with Murphy engineering everything through midfield they pushed on to lead by three points before Colm Boyle brought a 22-minute spell without a score to an end.
Donegal's Eamonn Doherty was red carded for a punch on O'Shea while there were numerous flashpoints in the last quarter.
Scorers - Mayo: C O'Connor 1-5 (1-0 pen, 0-3fs), L Keegan 0-2, C Boyle, K Higgins, D Kirby, S Nally, A Moran 0-1 each.
Donegal: M Murphy 0-4 (3fs, 1 45), C Mulligan 0-3, C Thompson 0-2, E Ban Gallagher, J Brennan, F McGlynn, M O'Reilly all 0-1 each.
Mayo: D Clarke; B Harrison, K Higgins, C Barrett; C Boyle, L Keegan, P Durcan; D Kirby, T Parsons; S Nally, F Boland, D Drake; K McLoughlin, A Moran, C O'Connor. Subs: S Coen for Boyle (h-t), D O'Connor for Boland (h-t), A O'Shea for Kirby (45), J Doherty for Moran (59), D Vaughan for Drake (65), C O'Shea for Nally (74).
Donegal: MA McGinley; E Doherty, N McGee, P McGrath; K Lacey, F McGlynn, E Ban Gallagher; J McGee, M Murphy; C Mulligan, M Carroll, C Thompson; J Brennan, H McFadden, M O'Reilly. Subs: E McHugh for McFadden (49), P McBrearty for Lacey (59), M McHugh for MGlynn (65), M McElhinney for McGrath (68), M Langan for J McGee ((69).
Referee: C Reilly (Meath)