The Scottish champions had looked on course to move 12 points clear of Celtic when Nikica Jelavic opened the scoring early in the second half.
But Ally McCoist’s men were stunned when Saints hit back deep in injury time as former Rangers striker Steven Thompson grabbed a late leveller to ensure a share of the points.
Rangers made two changes from the side who defeated Hibernian before the international break for the visit of St Mirren.
Sasa Papac was ruled out with a sinus problem and Alejandro Bedoya was dropped from the squad, as Lee Wallace and Steven Naismith – back from suspension – both started.
Saints made one change from the side who lost to Inverness in their last outing, with Kenny McLean starting and Gary Teale dropping to the bench.
Rangers started strongly and Kyle Lafferty tested Craig Samson early on with a close-range volley from a Gregg Wylde corner that the goalkeeper did well to block.
Another flag-kick, this time from Steven Davis, found Maurice Edu in the packed box and the American bulleted a powerful header just past the post.
Jelavic then collected from Naismith and tried to find Lafferty in the box for the header but the move was read by Samson who intercepted and gathered before the Northern Irishman could make contact.
At the other end, Nigel Hasselbaink picked up the first booking of the game from referee Crawford Allan for diving after taking a tumble just outside the box under pressure from Steven Whittaker.
With time fast running out to find a goal before the interval, Davis played a one-two with Wylde and surged into the box only to drill past the upright, with Samson untroubled.
Rangers fans perked up thanks to Paul Gascoigne’s half-time appearance, which earned him a rapturous reception, as he told Rangers fans “the best football I ever played in my life was here at Ibrox” and that he wished he could pull his boots on again and help the team out.
The legendary player perhaps proved to be an inspiration to the current team who opened the scoring just three minutes after the restart when Lafferty did well to retain possession before setting up Jelavic for the shot from 12 yards.
Saints tried to haul themselves back into the game and Thompson found himself through on goal before Whittaker made an impressive saving tackle to deny the visitors a quick leveller.
Naismith then whipped a tempting pass to the feet of Jelavic who looked certain to claim his second of the day from just six yards out only to look on in disbelief as his shot cannoned off the legs of Samson.
Rangers were keen to snuff out any hope of a late Saints comeback but Samson was up to the task again, this time to block a Davis effort from just inside the box.
The visitors piled forward in the final minutes and could have hit back through Jeroen Tesselaar but goalkeeper Allan McGregor was able to block at his near post.
But McGregor was unable to prevent Thompson netting an injury-time equaliser when he fired home from a David van Zanten cross to earn the Paisley side a share of the points.