A game that saw few chances saw the Mallards take the lead 19 minutes from time through substitute Ryan Campbell before Curran rattled in a second two minutes later to assure Whitey Anderson's side of the points, and a first home league win of the season.
The first half saw little in the way of goalmouth action as both defences controlled things.
Portadown had the first effort at goal as the lively Ryan Burns got on the end of a Ross Redman cross from the left but failed to get his header on target while Curran saw a free kick smash into the wall at the other end of the pitch.
A scrappy affair saw Mallards goalkeeper Alvin Rouse push away a Chris Casement shot after good work from Burns while Ports goalkeeper David Miskelly got down to gather another Curran effort.
The second half continued in the same manner as the first, and the encounter had a draw written all over it until the home side swooped to make the breakthrough in the 71st minute.
McCartney drove a low cross that Miskelly could only parry out as far as Campbell who made no mistake in firing into the back of the net.
And the Mallards then doubled their lead two minutes later as Andy Crawford sent Curran through on the right with the winger powering forward before drilling his shot across the goalkeeper to the corner of the net.
From this there was no way back for Portadown as the Mallards saw out the remainder of the encounter to claim another three points which lifts them up to fifth in the Danske Bank Premiership table.