The hosts opened the exchanges better, and should have taken the lead after six minutes when Steven McCullough’s cross was headed back across goal by Declan O’Brien, but captain Mark Surgenor headed wide.
At the other end, Portadown striker Marcio Soares found himself one-on-one from yards out, however he was unable to get the shot off, before Niall Henderson’s effort was blocked by a pack of bodies.
Veteran O’Brien was a constant threat going forward for Rangers, and he came so close to scoring as his close-range shot was very well saved by Jack Duffin.
Similarly, Soares was the focal point for the Mid Ulster men as he dispossessed Martin Murray and charged up the right wing before delivering a dangerous low cross, but Steven Hughes couldn’t stretch far enough to reach the ball.
Aaron Callaghan’s men quickly charged down the other end and created a chance of their own as McCullough’s deep cross found TJ Murray who shot first time, but Duffin got down well to save with his feet.
With 36 minutes played Carrick took the lead. Martin Murray’s free-kick from the left was flicked on by Chris Morrow straight into the path of Ports player Matthew Hazley who accidentally put the ball into his own net.
Three minutes later, Niall Currie’s side equalised. A corner-kick wasn’t cleared by the ‘Gers defence and when it eventually fell to Soares he made no mistake to fire past Brian Neeson.
Only two minutes later, the home side re-took the lead. Morrow found Martin Murray who took a touch to turn towards goal before unleashing a thunderbolt of a strike past Duffin and into the top corner.
On the stroke of half-time, Portadown equalised – again! Hughes squared the ball to his strike-partner Soares on the edge of the area who placed aimed his shot perfectly into the bottom left corner, leaving Neeson with no chance and leaving the game level at the interval.
10 minutes into the second half, smart interlinking play between O’Brien and TJ Murray resulted in the latter of the players delivering a cross across the face of goal, but O’Brien couldn’t connect.
Robert Garrett then had a chance from 25 yards for the Shamrock Park side as he was teed up for a shot, and it looked dangerous as it swerved in the wind but Neeson did well to hold the ball firmly.
It looked as if Rangers would find their third on the hour mark as McCullough’s corner found Morrow unmarked, but the midfielder headed wide.
Tommy Elder then replaced Chris Morrow on the 66th minute as Carrick pushed on in search for a third.
Five minutes later and that all important third goal arrived. A short corner resulted in TJ Murray overlapping McCullough and when he received the ball he dispatched a cross which travelled all the way into the far corner.
Sean Noble then replaced Martin Murray, with Rangers eager to hold on for an important win.
With the Rangers defence performing effectively, little chances were created in the time remaining. At the death, Elder looked set to score into an empty net, but Brendan Shannon heroically blocked the effort.
Fra Rice replaced Aaron Smyth in the last point of interest in the game as the full-time whistle blew to confirm a monumental result in the Gers’ strive for Premiership survival.
Carrick Rangers: Neeson, Smyth (Rice, 90+2), McNally, McVey, McCullough, M Murray (Noble, 73), Surgenor, Morrow (Elder, 66), TJ Murray, Kelly, O’Brien.
Unused substitutes: McConnell, Clarke.