St Johnstone boasted a shock 3-1 lead over Rangers at half-time in the Clydesdale Bank Premier League at McDiarmid Park.
The home side raced into a 2-0 lead when Cillian Sheridan and Chris Millar both netted in the opening 12 minutes.
Rangers hit back through Sasa Papac but Saints restored their advantage thanks to a Liam Craig header.
Rangers named an unchanged side from the one who romped to victory against Hearts at the weekend for their rearranged Clydesdale Bank Premier League game against St Johnstone.
The match fell victim to a frozen pitch back in February and was the subject of another pitch inspection this afternoon as the Scottish champions bid to move 13 points clear at the summit.