Abdallah Sima was also on target with his eighth goal of the season as the Light Blues picked up three points in Paisley.
There was a first Rangers start for 17-year-old Zak Lovelace as he came into the starting XI alongside John Souttar, Jose Cifuentes and Kemar Roofe.
Rangers lined-up in Paisley with Jack Butland in goal and a back four of James Tavernier, Connor Goldson, John Souttar and Borna Barisic.
Jose Cifuentes came into midfield alongside John Lundstram and Nico Raskin, while Lovelace was joined in attack by Abdallah Sima and Kemar Roofe.
It was an even contest in the opening period in Paisley, with clear-cut chances few and far between inside the first 20 minutes.
The home side were awarded a free-kick with 23 minutes on the clock which almost provided an opportunity. Connor McMenamin whipped the ball into the box, with Scott Tanser managing to connect at the back post but he was unable to keep his strike down as it drifted over the bar.
Zak Lovelace did well shortly after to carve out an opportunity for Rangers, with the youngster driving a low ball across the face of goal in search of Sima but the ball was turned behind for a corner.
Before the set-piece was taken, a VAR check was called as Lovelace’s cross came off the hand of Ryan Strain on its way to Sima in the box. Following a review of the footage referee Nick Walsh pointed to the spot awarding Rangers a penalty and showing a red card to Strain.
James Tavernier stepped-up to take the penalty, and a cool right-footed finish from the captain fired Rangers ahead with 29 minutes of the match played.
It was a good spell for Rangers, and Zach Hemming pulled off a fantastic save just moments later to deny Connor Goldson. A fantastic delivery from a corner from Borna Barisic was met by the defender who directed a powerful header towards goal, but the St Mirren goalkeeper managed to get a strong hand to the ball to tip it over the bar.
Steven Davis was forced into a change with five minutes of the first-half remaining as Zak Lovelace was unable to continue after pulling up with an injury. It was unfortunate for the youngster who had made a positive start in this match, with fellow Academy player Ross McCausland on to replace the forward.
In first-half injury time, Rangers almost had a second as Barisic’s cross was flicked into the path of Nico Raskin by McCausland, but Hemming managed to block the midfielder’s shot.
Tavernier headed just wide from a McCausland cross as Rangers looked for a second goal in this match before, Cyriel Dessers was introduced up front as he replaced Kemar Roofe in attack for the Light Blues for the final half an hour.
The second goal did come for Rangers, and it was Abdallah Sima with his eighth goal of the season in the 70th minute. Tavernier lifted the ball over the top of the St Mirren defence, picking out Raskin who had made a darting run into the box.
Rather than taking on the shot himself, Raskin picked out Sima with a perfectly weighted pass and the on-loan Brighton forward struck it first time low beyond Hemming for his sixth goal in six matches.
Cyriel Dessers had a good opportunity in the final five minutes of the game as he was released through on goal, but his shot was held by Hemming.
Sam Lammers and Bailey Rice were introduced for the final few minutes in Paisley as they replaced Abdallah Sima and Jose Cifuentes.
In added time, Rangers had a third and it was a fantastic strike from James Tavernier. The ball broke for the captain outside the box, and he struck it first time into the top corner to seal the victory for Gers.
Rangers: Butland, Tavernier, Goldson, Souttar, Barisic, Lundstram, Raskin, Cifuentes (Rice, 88), Roofe (Dessers, 60), Sima (Lammers, 88), Lovelace (McCausland, 40).
Subs: McCrorie, Ridvan, Sterling, Davies, McKinnon.
St Mirren: Hemming, Tanser, Taylor, O’Hara, McMenamin (Nahmani, 80), Kiltie (Grieve, 67), Gogic, Baccus, (Boyd-Munce, 67), Olusanya (Mandron, 67), Fraser, Strain.
Subs: Urminsky, Bolton, Flynn, Small, Dunne.