The club is facing UEFA disciplinary charges relating to alleged sectarian chanting at both legs of their Europa League tie against PSV Eindhoven but were able to deliver the goods on the park at Ibrox.
Sasa Papac's opener was cancelled out by Darren McGregor, before Steven Whittaker netted the winner from the penalty spot to send Rangers one point clear of Celtic, who are in Scottish Cup action this weekend.
Madjid Bougherra was named on the bench after recovering from a hamstring injury that sidelined him for several weeks.
There was a starting role for El-Hadji Diouf after he, along with Bougherra, escaped an additional ban from the Scottish Football Association this week following their actions in last month's Old Firm derby.
Richard Foster was also drafted into the side after sitting out the midweek win at Aberdeen under the terms of his loan agreement, while Saints were without suspended duo Michael Higdon and Hugh Murray.
Rangers dominated the opening spell but failed to create much in the way of clear-cut chances and put the Saints defence under any real amount of pressure.
They finally carved out a decent opportunity when Diouf's corner broke for Kyle Lafferty and he unleashed a shot that was prevented from hitting the back of the net by a timely block from Steven Thomson.
The big striker had the ball over the line when he collected from Diouf and sent an angled drive past the grasp of goalkeeper Paul Gallacher but the effort was flagged for offside.
Rangers were beginning to look more dangerous and Steven Davis played the pass out to Maurice Edu on the right flank and he delivered a tempting ball to the feet of Nikica Jelavic in front of goal, but the Croatian blasted well over.
The breakthrough came after 33 minutes and left-back Papac was the unlikely provider of the opener for the Scottish champions.
Lafferty raced onto a cross from Davis only to see his shot blocked on the line by Gallacher before Papac pounced to rifle home the rebound from six yards out.
But Saints were back on level terms just five minutes later when Darren McGregor volleyed past Rangers goalkeeper Allan McGregor from eight yards after Aaron Mooy had teed up the effort.
Rangers set about trying to restore their lead after the restart and Diouf supplied the pass for Jamie Ness to set up Jelavic but the striker was off-target with a shot from the tightest of angles.
Jelavic had a major role to play when the home side did find the back of the net when he slipped the ball through the legs of John Potter before being tripped in the box by the Saints defender.
Whittaker stepped up for the penalty and confidently rifled low past Gallacher from 12 yards with 52 minutes on the clock.
Jelavic was desperate for a goal of his own and should have done better when he met Foster's cross from the right and nodded over from a few yards out.
Rangers could have all but put the game beyond St Mirren when Edu released Davis down the right flank before he whipped a cross into the box for Jelavic but he just failed to connect at full stretch with only the goalkeeper to beat.
Saints tried to push forward in search of another equaliser in the final minutes but Walter Smith's men were able to see out the remainder of the match with their narrow advantage intact.
Rangers will now prepare for Tuesday's clash at Dundee United as they bid to stretch their lead at the top to four points before Celtic are next in SPL action.