James Tavernier scored his 100th league goal for Rangers as they beat Dundee to overtake Celtic and move within four points of Scottish Premiership leaders Hearts.
Skipper Tavernier's second-half penalty and Danilo and Djeidi Gassama's late strikes ensured victory as Danny Rohl's side made it eight wins in a row in all competitions and took advantage of Hearts and Celtic's draw.
The hosts were awarded a spot-kick when Nico Raskin was caught by Ryan Astley after shooting over. The decision was upheld by the video assistant referee (VAR) and keeper Jon McCracken could only get a touch on Tavernier's shot.
Danilo's calm finish from the edge of the box came from a Dundee error and Gassama curled in a superb third.
Tochi Chukwuani, in his first Rangers start, had netted with a header in the first half but the effort was ruled offside. The midfielder later had a low effort turned away by McCracken, who also had to deal with strikes by Thelo Aasgaard and Tavernier.
Emmanuel Fernandez tried to take matters into his own hands with an acrobatic effort after chesting down, his overhead kick flying wide.
McCracken made a fine save to deny Mikey Moore after the latter's one-two with Bojan Miovski in what was increasingly a tense second period.
Dundee, who are ninth, could not find a telling moment in attack and were punished by Danilo after Joe Bevan's loose pass before a tired-looking defence were undone again by Gassama.