St Mirren's six match unbeaten run came to an end as the Buddies were edged out by Rangers at the SMiSA Stadium.
Connor Ronan's incredible 30-yard strike had given Saints an early lead, but two goals in a minute just before the interval saw the visitors take the points.
Jim Goodwin named the same starting eleven for the fourth game in a row as Saints looked to maintain their good run of form that had saw them win their last three and go six unbeaten.
The Buddies came flying out the traps and got off to the perfect start when Ronan rattled home to open the scoring on four minutes. The Irishman drove forward after shrugging off John Lundstram and unleashed an absolute rocket which flew into the top corner away from the despairing outstretched arm of Jon McLaughlin.
Connor Ronan celebrates after opening the scoring for Saints (Image: Allan Picken)
Saints were brave in possession in the opening exchanges and were worthy of their early lead. But Rangers started to grow into the game after a slow start. Connor Goldson twice met corners from James Tavernier only to head into the arms of Jak Alnwick both times.
Ianis Hagi was proving a threat for the visitors with the Romanian seeing an effort save by Alnwick on 32 minutes before flashing a strike just wide five minutes later. It was Hagi who would prove instrumental in the Rangers equaliser when he drew a foul inside the box to win Rangers a penalty. Kemar Roofe stepped up and slotted home from 12 yards despite Alnwick diving the right way. And within a minute Rangers were ahead.
Despite their excellent start, Saints couldn't replicate that in the second 45 and never really troubled McLaughlin in the Rangers goal. Indeed, Rangers didn't particularly look like adding a third in a second-half that passed without much incident. The Buddies did have to deal with an injury to Jamie McGrath who had to be stretchered off in the closing minutes, however, there is no update yet on how severe the injury may be.
Full-Time: St Mirren 1-2 Rangers
St Mirren: Alnwick, Fraser, Shaughnessy (c), McCarthy, Millar (Main 76), Power, Erhahon (Flynn 45), Tanser (Tait 46), McGrath, Ronan, Brophy
Subs Not Used: Lyness, Dunne, McAllister, Dennis
Rangers: McLaughlin, Tavernier, Goldson, Balogun, Barisic, Lundstram, Davis, Aribo, Hagi (Arfield 78), Roofe (Patterson 86), Morelos (Sakala 69)
Subs Not Used: McCrorie, Bassey, Kamara, Bacuna
Referee: Steven McLean
Assistant Referee: Graeme Stewart
Assistant Referee: John McCrossan
Fourth Official: Alan Muir