The hosts' opening goal had a slice of fortune about it, as DC defender Thomas Lambe turned the ball into his own net from a Stefan Lavery cross
Dungannon's second came in the 15th minute when Ryan Harpur's deflected effort deceived Robert Robinson in the visitors' goal.
DC pulled one back in the 73rd minute when Darren Murray netted from the spot after Sean Kyle's foul on Michael Funston, but two minutes later captain Stephen McIlorum was sent off for a poor tackle on Harpur.
Stephen Small's side finished the game with nine men after Lambe was sent off for a second bookable offence for kicking the ball away.
Dungannon's win against DC means bottom placed Carrick Rangers will be relegated next season, despite a 2-1 win over Lisburn Distillery at Seaview on Friday night,.
For Lisburn Distillery, the defeat means they are now prime candidates for the promotion/relegation play-off against Newry City.
Meanwhile Glenavon's hopes of avoiding the promotion/relegation playoff suffered a blow after they were held to a 2-2 draw away to Ballymena United on Saturday.
The Sky blues took the lead two minutes into the second half when James Costello beat Andy Coleman from just inside the area, but Glenavon responded in the 70th minute when player/manager Gary Hamilton's weighted pass found Brian McCaul.
The Lurgan Blues thought they had snatched the points when Andy Mitchell pounced on a loose ball inside the area with ten minutes left, but Johnny Taylor ensured a share of the points with a header two minutes into stoppage time.
At the top of the premiership table Daryl Fordyce struck a late equaliser as champions Linfield fought back to earn a 1-1 draw with Crusaders at Seaview.
After a fairly drab first half with no goals and few chances, Jordan Owens headed in the opener for the hosts in the 52nd minute and sparked Crusaders into life.
Linfield battled back in search of an equaliser, but were repeatedly denied by a series of fine saves from 17-year-old Crues stopper Jack McCrea.
However, the introduction of Mark McAllister restored Linfield's attacking edge, and they capitalised three minutes from time when Fordyce netted with a low drive from just inside the area.
Elsewhere, Glentoran boss Eddie Patterson endured a nightmare return to his former club as Cliftonville romped to a 3-0 victory to move up to second in the table.
Chris Scannell stabbed the ball into the net in the 23rd minute to give Tommy Breslin's side the lead, and Joe Gormley doubled the advantage when he capitalized on a defensive mistake in the 57th minute.
The third goal came two minutes from time, when Elliot Morris was unable to stop George McMullan's fiercely-struck shot.
Portadown remain in third after they suffered a 4-1 defeat at the hands of Coleraine at the Coleraine Showgrounds.
Stephen Lowry opened the scoring in the 24th minute, but Matthew Tipton replied for the visitors with a back-post finish seven minutes later.
However, Aaron Boyd and Curtis Allen both netted before the break to put the Bannsiders in the ascendency.
Allen scored again in the 68th minute via a deflected shot to seal a win that puts Coleraine just three points behind the Ports with a game in hand.
IFA Premiership results:
Friday 20 April:
Carrick Rangers 2 -1 Lisburn Distillery
Carrick Rangers: Kyle Owens 22, Paul Heatley 37.
Lisburn Distillery: Andrew Ferguson 59.
Saturday 21 April:
Ballymena United 2 - 2 Glenavon
Ballymena United: Costello 47, Taylor 92.
Glenavon: McCaul 70, Mitchell 80.
Cliftonville 3 - 0 Glentoran
Cliftonville: C Scannell 23, Gormley 57, McMullen 88.
Coleraine 4 - 1 Portadown
Coleraine: Lowry 24, Boyd 36, Allen 45, 68.
Portadown: Tipton 31.
Crusaders 1 - 1 Linfield
Crusaders: Owens 52.
Linfield: Fordyce 87.
Dungannon Swifts 2 - 1 Donegal Celtic
Dungannon Swifts: Lambe og 3, Harpur 15.
Donegal Celtic: Murray 73 (penalty), McAlorum sent off 75.