Ciaran Murtagh's goal helped Roscommon lead by three at half-time but Donegal moved three up before a Conor Devaney goal levelled matters on 64 minutes.
Mark Anthony McGinley saved a glorious Ronan Stack goal chance before McHugh's dramatic injury-time winner.
Both Monaghan and Cavan missed a host of chances in their Division One game.
A number of Cavan's misses were particularly glaring with Seanie Johnston having a poor free-taking day but Monaghan will feel that they should have snatched victory late on as the normally reliable Conor McManus and Owen Duffy both missed great chances to seal victory.
With both sides having lost several experienced squad members in recent months, the Dr Hyde Park encounter was billed as a relegation battle and it was Donegal who came out on the right side of the result after a frantic finish.
Managers Rory Gallagher and Kevin McStay got involved in spot of jostling and verbal exchanges in the closing seconds after McHugh had kicked Donegal ahead, with the Roscommon boss unhappy at the duration of a substitution by the visitors.
Moments earlier, Stack had squandered a glorious chance to seemingly secure Roscommon's victory as he opted to goal for goal from point-blank range which allowed Donegal keeper McGinley to make a brilliant save.
Donegal led by two early on but Roscommon took a three-point lead after McGinley's misdirected short kick-out was punished by Murtagh bundling the ball over the line.
The visitors had a great chance to respond with a three-pointer of their own but Michael Carroll's low shot skimmed over the crossbar.
Trailing 1-6 to 0-6 at the break, Frank McGlynn's half-time introduction spurred a Donegal comeback as three points from the impressive Marty O'Reilly and further scores by the impressive Caolan Ward, Jamie Brennan, sub Darach O'Connor and Eoin McHugh helped the visitors move three ahead.
Roscommon levelled with six minutes of normal time left as Devaney lashed an unstoppable shot past McGinley.
Stack seemed certain to win it but took the wrong option in going for goal and relieved by the let-off, Donegal clinched victory as McHugh pointed in the final minute of injury-time.
Scores were at a premium at Castleblayney but Cavan probably should have edged the verdict after missing some great chances.
Johnston's early missed free set the tone for his day although he did help the Breffnimen move into a 0-2 to 0-0 lead.
Monaghan didn't open their account until McManus' 21st-minute free and he quickly added two more scores to nudge Monaghan ahead.
Cavan's Niall Clerkin then created a goal chance for himself after a superb run but attempted to find a colleague instead of shooting himself and the chance was intercepted.
Killian Brady did level before the break but with Cavan continuing to misfire in front of goal, Monaghan led by two on three occasions in the third quarter.
However, the Farneymen failed to score in the closing 18 minutes, with Cavan also unable to split the posts in the final 15 minutes of play after points from Shane Tierney and Gearoid McKiernan.
Cavan did have a late penalty claim turned down by referee David Coldrick after Drew Wylie had challenged McKiernan while McManus and Owen Duffy then missed chances to win it for Monaghan.
After their opening home defeat by Dublin, the draw gets Mattie McGleenan's side off the mark in Division One while Monaghan move on to three points after their opening win in Mayo.
WEEKEND ALLIANZ FOOTBALL LEAGUE RESULTS
SUNDAY
Division One
Monaghan 0-7 0-7 Cavan
Roscommon 2-9 0-16 Donegal
Division Two
Clare 2-11 0-11 Down
Fermanagh 0-10 1-13 Galway
Kildare 1-14 2-8 Cork
Meath 3-15 0-9 Derry
Division Three
Louth 0-11 0-10 Longford
Offaly 0-23 1-7 Antrim
Tipperary 1-16 2-14 Sligo
Armagh 0-16 2-11 Laois
Division Four
Carlow 0-16 2-15 London
Limerick 0-12 1-18 Westmeath
Leitrim 0-14 0-16 Wexford
SATURDAY
Division One
Dublin 0-10 1-7 Tyrone
Kerry 1-10 0-15 Mayo
Division Four
Waterford 1-17 1-9 Wicklow
Eoin McHugh's late point helped Donegal snatch a 0-16 to 2-9 Division One win in Roscommon as Monaghan drew 0-7 to 0-7 with Cavan at Castleblayney