Rangers returned to the top of the Scottish Premier League for the first time since December with a 2-0 win over St Johnstone. Kyle Lafferty took advantage of a headed backpass from Danny Grainger to round goalkeeper Peter Enckelman and slot home in the 20th minute.
Rangers never looked comfortable with just a one goal advantage at McDiarmid Park pitch and they had keeper Allan McGregor to thank for a string of saves before Steven Naismith sealed the win seven minutes from time.
The win takes Rangers one point above rivals Celtic, who play their game in hand against Hibernian at Parkhead tomorrow. Rangers made one change to the side which lost to Dundee United at the weekend as Lafferty returned from injury to replace El-Hadji Diouf.
The Ibrox club found themselves on the back-foot in the early exchanges, but St Johnstone, who have gone 12 hours without one of their own players finding the back of the net in a league game, failed to test McGregor.
Grainger was appealing for a penalty in the 13th minute after he appeared to be caught by the trailing leg of Gregg Wylde, but his protests were waved away by referee Crawford Allan.
St Johnstone had only conceded once in their previous nine home matches, but a mistake from defender Grainger in the 19th minute helped Rangers take the lead. McGregor's kick out was headed on by Nikica Jelavic and Grainger's headed backpass was short, allowing Lafferty to nip in and round Enckelman before rolling the ball into the empty net.
With half-time approaching Weir's powerful header crashed off the outside of the post and wide, but the flag was already up for an infringement. McGregor had to be alert shortly after the break when a curling cross from Kevin Moon looked to be sneaking in at the far post but the keeper managed to palm it away.
The keeper then came to the rescue for Rangers when Wylde misjudged the flight of the ball in the box allowing Murray Davidson to fire a fierce shot from close range, but McGregor produced a fine one-handed save to prevent an equaliser.
Naismith wrapped up the points in the 83rd minute. The Scotland striker played a one-two with Jelavic before Naismith finished low past the advancing Enckelman with a left-foot strike. Jelavic then cracked the underside of the bar and Naismith headed wide as Rangers finished strongly.