Donegal were just too good for a wasteful Cavan as they powered to victory in MacCumhaill Park, Ballybofey.
Donegal led by four points at the break but then hit six on the trot to open a gap Cavan never looked likely to bridge.
In a really open game of football Cavan started brightly and led 0-03 to 0-01 after seven minutes with points from Caoimhin O'Reilly (2) and Bryan Magee while Ciaran Thompson had a great effort from the sideline for Donegal.
Michael Murphy, Michael Langan and Thompson added Donegal points while Cavan had a great goal chance but Padraig Faulkner slipped when just a couple of yards from the Donegal goal line.
However, they did get a goal when Killian Clarke made a great break and set up Caoimhin O'Reilly to blast to the corner on 16 minutes.
But that was to be their last score until four minutes from the break as Donegal took over. The impressive Langan, Caolan Ward and Jamie Brennan had Donegal back in front and then they got a goal. Patrick McBrearty, unusually quiet, was denied by the Cavan 'keeper but from the '45' Michael Murphy's effort was short and Ryan McHugh fisted to the net.
Murphy, Langan and Thompson added points to stretch the lead to seven, 1-10 to 1-3 before Cavan hit three late points from Gearoid McKiernan (2) and Niall Murray to leave it 1-10 to 1-6 at the break.
Donegal added six points without reply on the restart with Murphy getting three of them. But then Cavan had their patch, hitting five on the trot, Gearoid McKiernan hitting three of them.
Patrick McBrearty at last got on scoreboard on 60 minutes to ease Donegal worries. Michael Murphy found McBrearty with a great pass for the Kilcar man to add his second within a minute.
Donegal had the ball in the net from Michael Langan but it was disallowed but then Cian Mulligan drove through to fire to the net.
Cavan tried to the finish but Donegal had an easy enough passage to a meeting with Derry in the quarter-final in two weeks' time.
Donegal: Shaun Patton; Eoghan Ban Gallagher, Neil McGee, Caolan Ward (0-01); Stephen McMenamin, Paul Brennan, Ryan McHugh (1-00); Hugh McFadden, Leo McLoone (0-01); Ciaran Thompson (0-03), Michael Langan (0-03), Frank McGlynn; Patrick McBrearty (0-04), Michael Murphy (0-06, 0-03f), Jamie Brennan (0-02).
Subs. Ciaran McGinley for Thompson 52; Eamonn Doherty for McMenamin 57; Cian Mulligan (1-00) for McHugh 59; Mark McHugh for McGlynn 64; Stephen McBrearty for J Brennan 67;
Cavan: Raymond Galligan; Jason McLoughlin, Padraig Faulkner, Niall Murray (0-01); Killian Brady, Ciaran Brady, Conor Moynagh; Killian Clarke, Bryan Magee (0-01); Cian Mackey (0-02, 0-02f), Oisin Kiernan, Enda Flanagan; Caoimhin O'Reilly (1-03, 0-03f), Gearoid McKiernan (0-07, 0-02f), Conor Bradley.
Subs. Fergal Reilly for K Brady 20; Niall Clerkin for Murray ht; Adrian Cole (0-01) for Magee 43: Dara McVeety for Flanagan 52;
Referee: David Gough (Meath)