Three points behind at half-time at Cusack Park in Ennis, Donegal produced an excellent second-half performance to beat Clare by five points, 0-14 to 0-09.
Clare got off to a fast start with three quick points , Keelan Sexton with the first and then two from Pearce Lillis .
Ciaran Thompson finally got Donegal going from a free in the 14th minute but Eoin Cleary replied quickly for the home team and then Shaun Patton produced a brillant save to deny Sexton from point-blank range when a goal looked certain.
Donegal had plenty of possession but were wasteful , kicking six wides in the opening 24 minutes.
Eoin Clearly’s second free put Clare four ahead , Oisín Gallen replied and then Emmet McMahon and Eoghan Ban Gallagher exchanged points to leave it 0-06 to 0-03.
Donegal then had a super opportunity to draw level when an excellent move left Eoghan Ban Gallagher clean through on goal but when he tried set-up John Ross Molloy the defended was robbed before he could get the shot away but perhaps Gallagher should have went for the finish himself.
It remained 0-06 to 0-03 to Clare at half-time.
Donegal introduced Jason McGee for the second-half and two quick points from Gallen and Thompson left just one in it , 0-06 to 0-05.
Emmet McMahon’s free put Clare two ahead again but Donegal hit back with two super scores from Ciaran Thompson and Caolan McGonagle left it level at 0-07 apiece in the 48th minute and all to play for.
Hugh McFadden put Donegal ahead for the first time but sub Darragh Bohannan levelled it up again quickly at 0-08 each in the 60th minute.
From there Donegal took control with four points in a row, Oisín Gallen , Caolan McGonagle , Luke McGlynn and another from Ciaran Thompson , his fourth, all from play had them in the driving seat.
Aaron Griffen pulled a point back for Clare but a fourth point from Oisín Gallen and a first for Rory O Donnell saw Donegal safely through to victory and an important step towards the last twelve in the All Ireland series.
Donegal: Shaun Patton , Mark Curran, Brendan McCole, John Ross Molloy , Caolan Ward , Eoghan Ban Gallagher (0-01), Odhran Doherty, Caolan McGonagle (0-02), Rory O Donnell (0-01), Daire Ó Baoill , Jamie Brennan, Ciaran Thompson (0-04) , Oisin Gallen (0-04), Hugh McFadden (0-01), Conor O’Donnell.
Subs : Jason McGee for Molloy ( h/t). Caolan McColgan for Ward ( 50mins), Luke McGlynn (0-01), for Conor O Donnell (54mins).