Cliftonville earned their first Premiership win since 13 December as Portadown's poor recent run continued.
Joe Gormley hit the Ports woodwork on 18 minutes and the Reds did take the lead two minutes later as George McMullan netted a spot-kick.
Gary Twigg missed a Ports chance before Sean Mackle wasted another glorious opportunity after the break.
Twigg was then sent off after getting a second yellow card and Gormley's goal on 75 after a breakaway sealed victory.
McMullan's successful penalty was the veteran's 100th goal for the club and came after James Knowles had been brought down.
Twigg should have levelled before half-time after a Tim Mouncey cross and Mackle was even more guilty after the restart as he blazed wide following an unselfish Twigg pass.
Scottish striker Twiggs's saw frustration heaped upon frustration as his failure to take another chance was followed by his dismissal after a second yellow card.
Jude Winchester's charge see up Gormley's decisive second goal and Ports keeper David Miskelly had to make a great late save to deny Johnny McMurray.