Kemar Roofe bagged his first Rangers hat-trick in a 4-0 win at St Mirren to reduce the gap behind cinch Premiership leaders Celtic to six points.

The 29-year-old Gers striker headed the Light Blues in front before two minutes had elapsed and then nodded in a second in four added minutes at the end of the first half, by which time boss Giovanni Van Bronckhorst had lost John Lundstram and Filip Helander to injury.

Roofe drove in a third from close range five minutes into the second half and Joe Aribo's terrific finish in the 76th minute keeps the Ibrox outfit in the slipstream of their city rivals ahead of the Old Firm Scottish Cup semi-final clash at Hampden Park next Sunday.

Before that Rangers take on Braga in the second leg of their Europa League quarter-final at Ibrox on Thursday night looking to overcome a 1-0 deficit from during the week and the win will have boosted confidence.

Stephen Robinson’s St Mirren side, consigned to the bottom six before they went into the game following results elsewhere on Saturday, remain in 10th place, six points ahead of second-bottom St Johnstone - who Celtic thrashed 7-0 on Saturday - and will fear a relegation battle in their five post-split fixtures.

Following exertions in Portugal on Thursday, Van Bronckhorst reshuffled his squad, making five changes by bringing in Borna Barisic, Helander, Aribo, Aaron Ramsey and Roofe, who made an early impact.

Ibrox captain James Tavernier fizzed the ball across goal and it overshot to the other side of the penalty area to Ryan Kent and when he returned the ball towards goal, Roofe glanced his header from eight yards past Saints keeper Dean Lyness.

The home side’s response was positive and they pushed Rangers back but Gers keeper Allan McGregor was well-protected.

There was a blow for Rangers in the 25th minute when Lundstram had to go off after picking up an injury, replaced by Steven Davis.

Ramsey had a tame effort from the edge of the box in the 39th minute but Lyness made a comfortable save.

Helander then had to be helped off just before the break with an injury and he was replaced by 18-year-old centre-back Leon King but the half ended on a more encouraging note.

Ramsey crashed a shot against the crossbar from a Roofe pass and then moments later, with the last action of the half, the former Leeds forward headed in a cross from Tavernier to give the Govan men a two-goal interval lead.

James Sands and Scott Wright took over from Ramsey and Kent for the start of the second half, with Charles Dunne, who had taken a head knock in the first half, replaced by Conor McCarthy.

Wright set up Roofe inside the box after a terrific run but his deflected shot was saved by Lyness.

But the Jamaica striker made no mistake when a Fashion Sakala cut-back ended up at his feet as he thrashed the ball into the net.

Alex Gogic forced McGregor into his first real save of the game moments later with a drive from distance before it appeared that a combination of the post and Lyness denied Sakala.

Roofe made way for on-loan Manchester United attacker Amad Diallo just after the hour mark as Van Bronckhorst began thinking of the return game against Braga.

But Rangers were now in total control.

A swift Rangers break in the 70th minute saw Sakala roll in Diallo for an easy chance but he missed the target before Lyness denied Tavernier from close range.

However, gloss was applied to the scoreline and performance when Aribo swivelled 20 yards out and curled the ball over Lyness and into the net.

Saints substitute Curtis Main headed a corner over the bar after McGregor had made a fine save from Alex Greive.