Alfredo Morelos snatched victory for Rangers with an 88th-minute winner against St Johnstone at McDiarmid Park.
Steven Gerrard's shot-shy Gers had toiled through the opening half in Perth and found themselves behind after Matty Kennedy put Tommy Wright's team in front on the stroke of half-time.
But the Ibrox boss gambled when he brought on Kyle Lafferty to partner Morelos up front early in the second period and the Light Blues' pressure eventually paid off as the Colombian pounced twice to seal a 2-1 win.
Morelos' double – which takes his tally for the season to 19 – sees Rangers climb back up to second place, a point behind leaders Celtic, while the Perth men remain eighth.
Gers' lack of cutting edge was starting to worry Gerrard on the back of a dry spell that had seen his side manage just one goal from open play in their previous seven games.
The drought continued through another 45 minutes in which the Light Blues had plenty of possession but few ideas on how to open up Saints.
Instead it was Wright who was left looking satisfied as his side weathered the early stages.
The Northern Irishman had a couple of moments of frustration though as Saints passed up two golden opportunities to open the scoring.
Joe Worrall and Connor Goldson both hesitated after 22 minutes as David Wotherspoon fired a ball into Kennedy, allowing the striker to clip a pass into Murray Davidson's path but his lob sailed over Allan McGregor's crossbar.
Liam Craig's miss four minutes later was even worse as he somehow failed to bury a back-post header from almost point-blank range.
Gers had a couple of half chances but saw Ross McCrorie fire over before Eros Grezda got in the way of a Morelos strike.
But Saints finally got the goal they deserved on the stroke of half-time. Scott Tanser's cross bounced off Goldson's head and landed at Kennedy's feet. Andy Halliday bought his dummy as the former Kilmarnock and Cardiff striker cut inside to lash into the roof of the net.
Gerrard had had enough of Grezda's ineffectiveness and hooked the Albanian at the break, replacing him with youngster Glenn Middleton. Lafferty was then added to the mix at Lassana Coulibaly's expense after 11 more blunt minutes.
It took until 66 minutes but the Ibrox boss finally got the reaction he was looking for as Morelos levelled up.
Goldson sprayed the ball wide to Middleton and winger immediately made for the by-line before standing up a cross into the six-yard box that was begging to be thudded home by the Colombian with his head.
For a second it looked like parity would not last long, however, as Kennedy fizzed a 25-yard strike that only drifted wide at the last moment.
Both sides were pushing for the winner as the game ticked into the final 20 minutes. McGregor had to parry a Blair Alston effort at one end before Saints stopper Zander Clark produced a breathtaking double-save to keep out Daniel Candeias and Lafferty.
Saints had Clark to thank again as he pushed away two more Lafferty efforts.
But with the seconds ticking away Morelos got in front of his marker to fire a Tavernier cross past the crestfallen Clark to seal victory for Rangers.
ga('create', 'UA-72310761-1', 'auto', {'name': 'pacontentapi'});
ga('pacontentapi.set', 'referrer', location.origin);
ga('pacontentapi.set', 'dimension1', 'By Andy Newport, Press Association Sport');
ga('pacontentapi.set', 'dimension2', 'b119b709-b0b1-415e-8c36-aa317c5ef400');
ga('pacontentapi.set', 'dimension3', 'paservice:sport,paservice:sport:club-news,paservice:sport:football,paservice:sport:match-reports');
ga('pacontentapi.set', 'dimension6', 'story');
ga('pacontentapi.set', 'dimension7', 'composite');
ga('pacontentapi.set', 'dimension8', null);
ga('pacontentapi.set', 'dimension9', 'sport:football');
ga('pacontentapi.send', 'pageview', { 'location': location.href, 'page': (location.pathname + location.search + location.hash), 'title': 'Two-goal Morelos nets late winner as Rangers fight back to beat St Johnstone'});