Match ends, St. Johnstone 1, Rangers 1.
St Johnstone 1-1 Rangers
St Johnstone fought back to draw with Rangers, leaving the Ibrox side 16 points behind Scottish Premiership leaders Celtic.
Barrie McKay put Rangers ahead after a dominant period for the visitors.
However, that was all undone when Rob Kiernan's short passback allowed Steven MacLean to level.
McKay had another effort saved and Josh Windass' shot was deflected over as Mark Warburton's side were forced to settle for a point.
Rangers, who host Celtic on Saturday, saw the momentum of four straight wins interrupted by a Saints side who maintain their unbeaten record so far in December and are now three points off fourth-placed Hearts, who have played a game more.
Rangers' tactical fluidity
Warburton has begun to embrace resourcefulness. The Rangers manager was once hidebound to a 4-3-3 shape with two attack-minded midfielders and inverted wingers, but he has become increasingly willing to adapt his thinking.
Lee Wallace was missing through injury, but Lee Hodson could have been a straight replacement. Instead, Warburton adopted a back three, with James Tavernier and McKay providing the attacking width.
That allowed Joe Garner and Kenny Miller to operate as a pair up front. Windass and Jason Holt were willing runners beyond Garner, and the fluidity of Rangers' movement, coupled with their numerical superiority in central midfield and some quick, assertive passing left St Johnstone minds scrambled for the opening spell.
In that time, Miller had a shot saved, Tavernier hit the crossbar, then McKay scored after St Johnstone goalkeeper Zander Clark had pushed out Garner's long-range effort.
St Johnstone would have been aghast at being so fragile. Manager Tommy Wright acted decisively, changing his side to a back three to add an extra central midfielder and close down the passing angles Rangers were taking such advantage of.
They were also fortunate, though, since Kiernan suffered a momentary calamity, under-hitting a return pass to goalkeeper Wes Foderingham and allowing MacLean to slide in and win the ball. The striker then showed composure to step beyond Foderingham and roll the ball into the empty net.
Rangers' lead had lasted just five minutes, and the home side were never so vulnerable again.
McKay was denied by Clark and Holt headed over before half-time, but following the interval the two sides essentially cancelled each other out.
Missing cutting edge
There was plenty of industry after the break, but also a reminder of the fiercely competitive and committed effort that St Johnstone are capable of. Wright's men are so well-drilled and disciplined that goals have to be ground out against them.
Rangers probed, and there was an early opening for Windass as he burst beyond Garner and profited from the striker's back-heel, but his shot was deflected on to the roof of the net.
The home side were less creative, although Graham Cummins should have been more decisive with his header from Joe Shaughnessy's cross, instead of glancing wide.
Rangers were at their most threatening when McKay was running at the St Johnstone defence, but they also had to return to a back four when Clint Hill hobbled off injured. Martyn Waghorn had come on by then, and he swept a shot wide.
St Johnstone remained grittily competitive and MacLean claimed for a penalty as he challenged Danny Wilson for the ball inside the area.
Wright and his men had been posed a question by Rangers' assertive opening, but they responded as they always do, diligently and with endless application and shrewd tactical awareness.
St Johnstone manager Tommy Wright: "We've got to be [satisfied with the point], Rangers started off very well and we had to change our system. They still had chances, but it wasn't wave after wave.
"Rangers will look at it [MacLean's goal] as poor play, but I don't look at it as fortuitous. It's good play from us. They like to play from the back and they do take chances. If we're not set up right, you can't take advantage of that, but we did.
"Steven MacLean's [penalty claim] I saw during the game and I feel that's one that if it happens outside the box, it's a free-kick. It's a clumsy challenge."
- 19FosterBooked at 69mins
- 4AlstonSubstituted forScobbieat 44'minutes
- 7MillarSubstituted forCraigat 69'minutes
- 18PatonBooked at 69mins
- 10WotherspoonSubstituted forSwansonat 78'minutes
- 9MacLeanBooked at 89mins
- 3HillBooked at 55minsSubstituted forHodsonat 66'minutes
- 23HoltBooked at 35mins
- 16HallidayBooked at 67mins
- 9MillerSubstituted forO'Halloranat 81'minutes
- 7GarnerSubstituted forWaghornat 62'minutes
- Crawford Allan
- Shots on Target
Second Half ends, St. Johnstone 1, Rangers 1.
Attempt missed. Martyn Waghorn (Rangers) right footed shot from outside the box is close, but misses to the right.
Corner, Rangers. Conceded by Paul Paton.
Attempt missed. Andy Halliday (Rangers) right footed shot from outside the box is too high.
Steven MacLean (St. Johnstone) is shown the yellow card for a bad foul.
Barrie McKay (Rangers) wins a free kick in the attacking half.
Foul by Steven MacLean (St. Johnstone).
Foul by Josh Windass (Rangers).
Richard Foster (St. Johnstone) wins a free kick in the defensive half.
Foul by Rob Kiernan (Rangers).
Graham Cummins (St. Johnstone) wins a free kick in the defensive half.
Jason Holt (Rangers) wins a free kick in the defensive half.
Foul by Liam Craig (St. Johnstone).
Attempt missed. James Tavernier (Rangers) right footed shot from the centre of the box is high and wide to the left.
Josh Windass (Rangers) wins a free kick in the defensive half.
Foul by Steven MacLean (St. Johnstone).
Substitution, Rangers. Michael O'Halloran replaces Kenny Miller.
Corner, St. Johnstone. Conceded by Danny Wilson.
Substitution, St. Johnstone. Danny Swanson replaces David Wotherspoon.
Attempt missed. Josh Windass (Rangers) right footed shot from outside the box is too high.
Attempt missed. Martyn Waghorn (Rangers) right footed shot from the right side of the box is close, but misses to the left.
Foul by Jason Holt (Rangers).
Paul Paton (St. Johnstone) wins a free kick in the attacking half.
Attempt missed. Graham Cummins (St. Johnstone) header from the centre of the box misses to the right.
Substitution, St. Johnstone. Liam Craig replaces Chris Millar.
Richard Foster (St. Johnstone) is shown the yellow card.
Paul Paton (St. Johnstone) is shown the yellow card for a bad foul.
Andy Halliday (Rangers) is shown the yellow card.
Substitution, Rangers. Lee Hodson replaces Clint Hill because of an injury.
Kenny Miller (Rangers) wins a free kick in the defensive half.
Foul by Graham Cummins (St. Johnstone).
Andy Halliday (Rangers) wins a free kick in the attacking half.
Foul by David Wotherspoon (St. Johnstone).
Substitution, Rangers. Martyn Waghorn replaces Joe Garner.
Joe Garner (Rangers) wins a free kick in the defensive half.
Foul by Steven Anderson (St. Johnstone).
Attempt missed. Graham Cummins (St. Johnstone) header from the centre of the box misses to the left.
Corner, Rangers. Conceded by Chris Millar.
Attempt blocked. Josh Windass (Rangers) right footed shot from the right side of the box is blocked.