Both sides had a player sent-off as Portadown sealed a deserved win.
George McMullan was dismissed for an elbow on Shane McCabe on 25 minutes and Kevin Braniff and Tim Mouncey went close for the Ports before half-time.
Matthew Tipton fired home the rebound in the 50th minute after Ryan Brown had saved his initial effort.
Wesley Boyle cut inside a defender and slammed home a left-foot shot into the top corner on 54, then Kevin Braniff was sent-off for a second yellow on 55.
The Reds had a good chance early on but Joe Gormley was unable to get a touch on Ciaran Caldwell's cross.
Braniff saw his half-volley cannon off the crossbar while, at the other end, Braniff and Mouncey forced fine saves from Brown.
The Ports earned deserved reward for their superiority with two goals after the break.