After a lively start from the hosts, Bangor deservedly hit the front on 17 minutes.
Former Ports man Steven McCullough delivered a trademark whipped free-kick from the left that fell to McRoberts and while his shot was well saved by Jamie Barry in goal, the goalkeeper could do nothing about the follow-up shot from captain Harrison, who fired high into the net.
Portadown should have levelled six minutes later as Eamon Fyfe coming rushing in for the simplest of finishes from a square ball, somehow missed the ball completely.
Things went from bad to worse for the visitors 10 minutes before the break when they lost captain MacKinnon for an off-the-ball incident on Bangor's Hughes.
Fyfe almost levelled minutes later with a header from close range, but it went just over the crossbar.
Ten minutes after the break Bangor doubled their lead. A corner from the right floated over the head of goalkeeper Barry and McRoberts headed home for his first goal for the club.
Just two minutes later it was three. This time Hughes was played clear through with the Portadown defence all at sea and the wide man tucked it into the bottom left-hand corner of the net.
Portadown grabbed a consolation on 75 minutes via an own goal by Bangor's Devlin.
James Teelan made a smart turn on halfway before playing Ben Kennedy through on goal. Kennedy's effort was well blocked by Gareth Deane, but he could only parry the ball back off his team-mate and into the net.