Donegal gave their all but they were unable to stop Dublin reach another semi-final in Croke Park.
Trailing by five points at half-time, that was to be the margin at the end, but Donegal got it down to three on two occasions in the second half, thanks to a goal from Ryan McHugh in the 43rd minute.
Dublin were tested and finished the game with 13 as Diarmuid Connolly and substitute Eoghan O'Gara were shown red. They also lost Brian Fenton to black near the end.
In the end, Dublin's ability to take long range points was the difference. They were also very patient and comfortable on the ball against a defensive Donegal.
Donegal trailed by 0-9 to 0-4 at half-time and it could have been worse as Diarmuid Connolly had two great goal chances, denied by Mark Anthony McGinley on 13 seconds and then just narrowly wide on 16 minutes.
Despite that, the Dublin No. 14 hit two marvellous long range points as well as being involved in a number of off the ball incidents.
Dublin had the opening two points from Dean Rock and Philly McMahon, but two Michael Murphy strikes, one a '45' had Donegal level on 19 minutes.
Dublin then went three clear through rock, Kevin McManamon and Ciarán Kilkenny before Murphy had another free from 50m after Ryan McHugh was fouled.
But Dublin's ability to be patient saw them stretch the lead to 0-8 to 0-3 through Connolly and Paddy Andrews from an unbelievable angle.
Anthony Thompson had Donegal's only point from play in the half in the 33rd minute before Connolly had the final point of a half in which Donegal had nine wides. Some of those wides were not shots at goal, but they were unable to find the right pass inside to Michael Murphy. All of the Dublin front line, apart from Bernard Brogan, were on the scoreboard in the opening half.
Kevin McManamon and Dean Rock added points but a point from play by McBrearty and the Ryan McHugh goal breathed life back into the contest. McHugh was on the end of a great move, palming home Eamon McGee's cross.
Scores were hard to come by but Michael Murphy kept the Donegal board ticking over and by the 66th minute there was just three in it, 1-8 to 0-14.
Substitute Paul Mannion was to prove the difference hitting the final goal and a point for the Dubs as Donegal kept pressing to the end.
In the end they just managed two points from play, which was never going to be enough, while Dublin had points from everywhere with Kevin McManamon giving a man of the match performance.
Donegal: Mark Anthony McGinley; Paddy McGrath, Neil McGee, Eamon McGee; Ryan McHugh (1-0), Karl Lacey, Frank McGlynn; Michael Murphy (0-6, 5f,45), Odhrán Mac Niallais; Anthony Thompson (0-1), Martin McElhinney, Eoin McHugh; Patrick McBrearty (0-3,2f), Rory Kavanagh, Martin O'Reilly. Subs., Ciaran Gillespie for MacNiallais ht; Leo McLoone for Kavanagh 42; Christy Toye for Thompson 47; Mark McHugh for E McGee 55; Ciaran Thompson for McElhinney 61; Colm McFadden for Lacey 71;
Dublin: Stephen Cluxton; Philip McMahon (0-1), Jonny Cooper (0-1), David Byrne; Paul Flynn, Cian O'Sullivan, John Small; Brian Fenton, Michael Darragh Macauley; Paddy Andrews (0-1), Kevin McManamon (0-3), Ciarán Kilkenny (0-1); Dean Rock (0-5, 4f,'45'), Diarmuid Connolly (0-2), Bernard Brogan. Subs., Cormac Costello for Brogan 47; Denis Bastick for Macauley 50; Paul Mannion (1-1) for Andrews 56; Eoghan O'Gara for McManamon 68.
Referee: Ciaran Brannigan (Down)