A strong final quarter earned Dublin their third Allianz Football League win at Croke Park, as they recorded a 2-16 to 0-13 victory against Meath.
The sides were tied at 0-11 apiece after 55 minutes, but Dublin outscored their opponents by 2-05 to 0-02 over the remainder of this contest.
Dublin led by 0-09 to 0-05 at the interval, before four unanswered points brought Donegal back level.
However, the loss of Michael Murphy through injury cost Donegal, and Bryan Cullen and Diarmuid Connolly netted late goals for the Dubs.
Donegal manager Jimmy McGuinness, speaking after the game, said that it was too early to tell how serious Murphy's injury is.
It comes just a month after the Glenswilly clubman returned to action in the Sigerson Cup with DCU following time out with a groin injury.
A total of 12 players were on target for Dublin in a game which saw them begin at a quick pace with Cullen, Connolly and defender John Cooper knocking over early points for a 0-03 to 0-00 lead.
Murphy opened Donegal's account in the sixth minute with the first of his six points. He had the deficit back to the minimum by the ninth minute, although Dublin seemed to have an extra edge in the opening quarter.
Pat Gilroy's men led by 0-06 to 0-03 after 16 minutes and could have been further in front but for the reflexes of Donegal goalkeeper Paul Durcan.
The Four Masters clubman saved a goal-bound effort from Eamon Fennell on the quarter hour mark, while four minutes later Kevin McManamon was foiled by a fine save from the Donegal net minder.
Corner back Frank McGlynn typified the hard graft shown by McGuinness' rearguard as they kept the Dublin attack at bay until McManamon pushed the hosts four points clear.
Murphy and Connolly then traded frees with Dublin forced to adjust to captain Ger Brennan's withdrawal. Sean Murray was sent on in his place.
Gilroy later confirmed that Brennan had been ill in the lead up to the game and was not operating at 100%. A further switch saw Dean Rock introduced for Alan Brogan late in the first half.
Both sides fired wide of the target as the 35th minute approached, before Leo McLoone and Tomas Quinn exchanged scores in injury-time to ensure a 0-09 to 0-05 interval scoreline.
Donegal upped the tempo on the restart. Murphy added his fourth point from a free, after Cooper received yellow card. A further Murphy point and scores from Neil McGee and Patrick McBrearty tied the game at 0-09 apiece.
McManamon and Kelly hit back with Dublin scores but points from Christy Toye and Murphy made it 0-11 apiece after 55 minutes.
Defender McGee missed a chance a minute later to push Donegal ahead and with Murphy now struggling through injury, Donegal were beginning to fade in attack.
Murphy played through the pain barrier for almost seven minutes before being eventually called ashore, with Stephen Cluxton and Paul Flynn adding points for Dublin during this spell.
Further scores arrived from Dean Rock and McManamon to move Gilroy's charges ahead by 0-15 to 0-11 with seven minutes left on the clock.
Donegal needed scores urgently, but Dublin proved resolute in defence with Cluxton pulling off a one-handed save from McBrearty's 64th-minute shot. Durcan put the resulting '45' wide of the posts.
Substitute David Walsh pegged a point back for Donegal, before Connolly and Martin McElhinney swapped scores.
Just three points separated the sides with a minute-and-a-half of normal time left, but Dublin wrapped up the result with a late goal rush.
Cullen left Donegal defender Paddy McGrath and substitute Daniel McLoughlin in his wake to slot past Durcan in the 71st minute.
Less than two minutes later, Connolly compounded Donegal's woes. He broke away from full-back Neil McGee and although Durcan got a half-block in, the full-forward's shot found its way into the net.
Donegal, who are second-from-bottom, face quite a battle to avoid the drop to Division 2, while the second-placed Dubs have one foot in the semi-finals.
Dublin: D Connolly 1-03 (0-02f), B Cullen 1-01, K McManamon 0-03, S Cluxton (0-01f), E Fennell, J Cooper, MD MacAuley, P Flynn, A Brogan, T Quinn, D Kelly, D Rock 0-01 each
Donegal: M Murphy 0-06 (0-03f, 0-01 '45'), N McGee, A Thompson, L McLoone, M McElhinney, P McBrearty (0-01f), C Toye, D Walsh 0-01 each
Dublin: S Cluxton; C O'Sullivan, Rory O'Carroll, P McMahon; J Cooper, G Brennan, K Nolan; MD MacAuley, E Fennell; B Cullen, P Brogan, P Flynn; T Quinn, D Connolly, K McManamon.
Subs used: S Murray for Brennan (25 mins), D Rock for A Brogan (30), D Kelly for Quinn (half-time), C Dias for Cooper (59).
Donegal: P Durcan; F McGlynn, N McGee, P McGrath; A Thompson, K Lacey, L McLoone; M McElhinney, N Gallagher; M McHugh, R Bradley, M O'Reilly; C Toye, M Murphy, P McBrearty.
Subs used: D Walsh for O'Reilly (30 mins), E McGee for Toye (53), A Hanlon for Murphy (59), D McLaughlin for Bradley (64).
Referee: Eddie Kinsella (Laois)