Strikers Michael Murphy and Colm McFadden hit 1-4 each as the Ulster champions bridged a 20-year gap, and condemned Mayo to yet another final defeat, their sixth in the last 24 years.
Murphy blasted home a goal after just 10 minutes, and Donegal had the ball in the net again eight minutes later when Colm McFadden collected after Paddy McBrearty's effort had come off the post, and drilled a low shot past David Clarke.
They almost had a third goal when Murphy slipped the ball inside to McFadden, but Clarke was quickly off his line to save.
Kevin McLoughlin finally got Mayo off the mark in te 16th minute, and they attacked with purpose.
Cillian O'Connor converted his third free, and two delightful Kevin McLoughlin points, along with a gem from Michael Conroy, narrowed the gap back to three.
Donegal lead by 2-4 to 0-7 at the interval
Donegal registered some vital scores in the third quarter, including a gem from corner back Frank McGlynn.
Points from Enda Varley and O'Connor kept Mayo hopes alive, but skipper Murphy thumped over a couple of long range frees, and punched over Rory Kavanagh's cross.
Mayo made a late challenge with scores from substitutes Richie Feeney and Jason Gibbons and defender Lee Keegan, but they were left to reflect on those early goals as Donegal held on to win by four.
Donegal scorers: M Murphy (0-03f), C McFadden (0-03f) 1-04 each, R Bradley, N Gallagher, F McGlynn 0-1 each.
Mayo scorers: C O’Connor 0-05 (5f), E Varley (1f), K McLoughlin 0-02 each, L Keegan, M Conroy, R Feeney, J Gibbons 0-01 each.
Donegal: P Durcan, P McGrath, N McGee, F McGlynn, E McGee, K Lacey, A Thompson, N Gallagher, R Kavanagh, R Bradley, L McLoone, M McHugh, P McBrearty, M Murphy, C McFadden
Subs: D Walsh for Bradley, M McElhinney for McBrearty, C Toye for McLoone
Mayo: D Clarke, K Keane, G Cafferkey, K Higgins, L Keegan, D Vaughan, C Boyle, B Moran, A O'Shea, K McLoughlin, J Doherty, A Dillon, E Varley, C O'Connor, M Conroy.
Subs: A Freeman for Doherty, J Gibbons for Conroy, R Feeney for Varley, S O’Shea for Moran