The ‘Gers had the first opening of the afternoon when a knock down from McGuckin was missed by a Linfield defender and found Curits Allen, but he could only fire over the bar from a promising position.
David Healy’s men responded with a cross from Kirk Millar that picked out Ethan Devine free in the box who sent his header narrowly past the post.
However, it would be Rangers who took the lead as Andy Mitchell’s strike from 25 yards took a deflection off Jamie Mulgrew to beat Chris Johns and find the top corner.
Looking for an equaliser, a quickly taken corner from the visitors saw the ball crossed for Devine who again couldn’t hit the target with his headed attempt.
Allen continued to be Carrick’s main outlet, and Johns had to be at full stretch to put a low strike from the forward behind.
David Healy received the response he desired from his men after half time, as they levelled the game just eight minutes into the second half.
A long ball forward beat the home defence to find Devine in behind and this time he got his goal with a drilled finish into the far bottom corner.
Not letting their heads drop, Stuart King’s lads regained the lead ten minutes later. Ben Tilney’s long throw-in made its way to McGuckin who saw his first attempt denied before smashing the rebound into the roof of the net.
The Blues should have been level once more when some neat play resulted in a chance for Robbie McDaid from ten yards but his strike clipped the top of the crossbar.
Otherwise limiting the Champions to very few chances, Rangers saw the game out for a richly deserved victory and three very welcome points.
Carrick Rangers: Glendinning; Glendinning, Ervin, Gordon; Forsythe, Cushley (Cherry, 46), Mitchell, Tilney; Anderson (Waite, 89); McGuckin (Gawne, 84), Allen (Kalla, 80).
Unused substitutes: Hogg, McKiernan, Gillen.
Linfield: Johns; Roscoe-Byrne (McKee, 77), Newberry (Shields, 68), Callacher; Millar, Mulgrew, Clarke (McDaid, 68), Cooper; Palmer (McClean, 68); Devine, Vertainen (Quinn, 68).
Unused substitutes: Walsh, Clarke.
Referee: Tony Clarke