James Tavernier’s wonder strike ten minutes from time was enough to see the Gers go top of the league after Kemar Roofe’s penalty cancelled out Michael O’Halloran’s opener.
The first action of the match came the way of the home side just 10 minutes in. Liam Craig’s perfectly weighted pass into the path of Michael O’Halloran gave John McLaughlin a decision to make. The Rangers number two failed to get to the ball in time taking O’Halloran clean out in the process, receiving a yellow, much to the dismay of the home fans.
As expected a dominant Rangers outfit began to threaten but a resolute St Johnstone defence kept them at bay as they were bombarded with crosses from the right.
On the half-hour mark, the Perth Saints had a glorious chance to take the lead. O’Halloran’s cross found Chris Kane on the edge of the six-yard box, however, he failed to connect, volleying thin air instead.
Five minutes before half time St Johnstone could have been down to ten men. 19-year-old Hayden Muller flew high and late into a loose ball with Ryan Kent, escaping with only a yellow.
Shortly after the break, O’Halloran had the home side in front in dramatic fashion. A long ball over the top led to the former Rangers forward getting the beating of pace over Helander. Retrieving the ball, he jinked in and out of the Swede before smashing emphatically into the top right corner, sending the home fans into ruptures.
Straight from kick-off, Rangers were inches away from an instant reply. James Tavernier’s cross was too powerful as Morelos fell just short with his stretching leg in the Saints goalmouth.
In the 58th minute, Rangers were awarded the opportunity of an equaliser. Ryan Kent’s quick feet proved too much for Muller as he clipped the Englishman, forcing Referee Willie Collum no option but to point to the spot.
Kemar Roofe stepped up calmly, dispatching down the middle to bring the score level.
Steven Gerrard was left with a headache ahead of Thursday’s crucial Europa League tie at home to Lyon. Old Firm winning, centre-back, Filip Helander was stretchered off with a suspected knee injury fifteen minutes from time.
With the score still level, James Tavernier was to be the hero with a late winner. The Rangers captain picked up the ball from all of 30 yards. With all the space on the park, he unleashed an incredible effort looping over a helpless Zander Clarke in the Saints goal.
Next up for St Johnstone is a trip to Pittodrie next Saturday to face an Aberdeen side who were defeated 2-0 to Motherwell earlier today. The Gers look ahead to the first round of the Europa League group stages as they host Lyon on Thursday night.
ST JOHNSTONE: Clark, Brown, Devine, McCart, Kane, Wotherspoon, O’Halloran, Muller (Vertainen, 83), Rooney, Crawford (May, 85), Craig.
SUBS NOT USED: Dendoncker, Parish, Gilmour, Ballantyne, Ambrose.
RANGERS: McLaughlin, Tavernier, Balogun, Helander (Simpson, 76), Bassey, Davis, Aribo, Kamara, Kent (Lundstram, 82), Roofe, Morelos.
SUBS NOT USED: McGregor, Wright, Barisic, Arfield.
REFEREE: Willie Collum