Portadown closed the gap on Premiership leaders Linfield to four points after edging out managerless DC.
Matthew Tipton stabbed in the opener for the Ports on 37 minutes at Shamrock Park and Jamie Tomelty's superb dipping shot made it 2-0.
Donegal Celtic hit back a minute after the restart with Darren Murray rifling in after a Chris Ramsay error.
Ports midfielder Neil McCafferty was sent-off for two yellows on 70 minutes but the hosts held on for the victory.
Donegal Celtic keeper Robert Robinson tipped over Brian Gartland's header after 23 minutes before an unmarked Gary Breen headed over from the the resulting corner.
Keith O'Hara whipped in the cross for Tipton to break the deadlock and Tomelty netted two minutes later with his 20-yard strike flying over Robinson before hitting the net.
Ryan Henderson missed out twice in the first half, with a shot blocked by Breen followed by David Miskelly saving from the DC striker.
Murray pulled one back early in a scrappy second half and Henderson headed over before McCafferty's exit with 20 minutes left.
Ports forward Kevin Braniff curled a shot just wide while DC failed to take advantage of the extra man in the closing stages.