Portadown remain five points behind Premiership leaders Linfield after losing to Crusaders at Shamrock Park.
Substitute David Rainey headed home the Crues' opener from a Stuart Dallas corner in the 15th minute.
Kevin Braniff levelled on 65 minutes when his low shot deflected off Chris Morrow and past Sean O'Neill.
Dallas scored the winner six minutes from time when he fired a ferocious angled drive from 20 yards into the net after Rainey laid the ball off to him.
The visitors suffered an early blow when Colin Coates was forced to come off injured.
Morrow went close for the Crues but his volley from a Dallas corner was pushed round by David Miskelly.
After Crusaders' opener Miskelly was again called into action when he saved Ryan McCann's goalbound free-kick.
Jamie Tomelty headed wide of the post when well placed for Portadown and then McCann cleared Gary Breen's header off the line.
At the other end, Breen blocked a Jordan Owens shot before half-time.
Braniff's drilled effort saw the Ports equalise and Dallas' winner came against the run of play.
O'Neill made a fine save to deny Brian Gartland in the closing minutes.
Crusaders move up a place to fifth in the table.