Match ends, Rangers 3, St. Johnstone 2.
Rangers struck late to beat St Johnstone and move to within six points of second-placed Aberdeen in the Scottish Premiership.
Barrie McKay fired the hosts in front and Martyn Waghorn headed their second.
David Wotherspoon's curled strike reduced Saints' deficit before Rangers had Rob Kiernan sent off for his challenge on Graham Cummins.
Steven Anderson lashed in to bring the sides level but Emerson Hyndman's late shot gave the home side victory.
The Ibrox outfit, managed by interim boss Graeme Murty for a fourth successive match, extend their advantage over Hearts in the league to eight points while Tommy Wright's Saints remain a point off fourth place.
Hyndman twice shot wide and Jon Toral headed narrowly off target as Murty's side sought to take control.
McKay gave them the edge with a fine first-time strike after getting the break of the ball outside the box.
And Rangers built on their lead when Waghorn darted across the front post to flick home Kenny Miller's cross early in the second period.
Miller's replacement Joe Garner could have made it three but he smashed the ball against the post from point-blank range. The frame of the Saints goal was rattled again later by Hyndman at 2-2.
Saints fight back
The visitors had been well in the game throughout with Steven MacLean firing wide following a stray pass by Toral and Blair Alston fizzing a shot past the post.
Liam Craig was also off target with a header from Keith Watson's cross.
They eventually netted when Danny Swanson's replacement Wotherspoon swept a shot past Wes Foderingham.
Kiernan was dismissed for a needless lunge on Cummins, who had replaced Alston.
And Anderson - earlier booked for simulation - slotted home following Craig's corner.
But Rangers regained the lead when substitute Danny Wilson launched the ball forward to Clint Hill and his knockdown dropped for Hyndman 18 yards out.
The American still had work to do but found the top corner with an emphatic finish - his third goal since joining on loan from Bournemouth in January.
What the managers said
Rangers' Graeme Murty: "We let Saints back in to the game by being a little loose at times. But the amount of forward play we had and chances we created, we could have won by three of four had we been a bit more clinical.
"If we are a bit more clinical those nervous moments don't come.
"My reaction at the time of the sending-off was to try and fix the problem. When I have a considered moment I'll have a look at it and decide what I actually think of the challenge.
"Rob has made the referee make a decision. The referee has made his decision based on what he saw and we will have to live with it. The fellas responded quite well after that.
"The main emotion is relief that a group of players who fully deserved the win managed to come off with three points. They showed a little bit of the spirit we've been asking for."
St Johnstone's Tommy Wright: "There was a lot of disappointment on Saturday [2-0 home loss to Kilmarnock] with the performance - but it's a different kind of disappointment tonight.
"We showed a lot of character to get back in the game.
"But we should see the game out and we didn't. I'm gutted for the lads because they showed both character and quality to get back in it. It's a huge disappointment."
- 4KiernanBooked at 78mins
- 8ToralBooked at 47minsSubstituted forHallidayat 82'minutes
- 20HyndmanBooked at 89mins
- 33WaghornSubstituted forWilsonat 79'minutes
- 9MillerSubstituted forGarnerat 64'minutes
- 22WatsonBooked at 54minsSubstituted forCoulsonat 82'minutes
- 18PatonBooked at 69mins
- 4AlstonSubstituted forCumminsat 66'minutes
- 26CraigBooked at 60mins
- 11SwansonSubstituted forWotherspoonat 70'minutes
- Kevin Clancy
- Shots on Target
Second Half ends, Rangers 3, St. Johnstone 2.
Corner, Rangers. Conceded by David Wotherspoon.
Clint Hill (Rangers) wins a free kick in the defensive half.
Foul by Liam Craig (St. Johnstone).
Goal! Rangers 3, St. Johnstone 2. Emerson Hyndman (Rangers) right footed shot from the centre of the box to the bottom right corner. Assisted by Clint Hill.
Joe Garner (Rangers) wins a free kick on the left wing.
Foul by Steven Anderson (St. Johnstone).
Emerson Hyndman (Rangers) is shown the yellow card.
Foul by Jason Holt (Rangers).
Steven MacLean (St. Johnstone) wins a free kick in the attacking half.
Emerson Hyndman (Rangers) hits the bar with a right footed shot from the centre of the box.
Goal! Rangers 2, St. Johnstone 2. Steven Anderson (St. Johnstone) right footed shot from the centre of the box to the bottom left corner. Assisted by Joe Shaughnessy following a corner.
Corner, St. Johnstone. Conceded by Clint Hill.
Attempt saved. Joe Garner (Rangers) header from the centre of the box is saved in the centre of the goal.
Substitution, St. Johnstone. Michael Coulson replaces Keith Watson.
Substitution, Rangers. Andy Halliday replaces Jon Toral.
Attempt missed. Joe Garner (Rangers) right footed shot from outside the box is close, but misses to the right.
Substitution, Rangers. Danny Wilson replaces Martyn Waghorn.
Rob Kiernan (Rangers) is shown the red card for violent conduct.