Somewhat predictably, the opening goal came from a set play, with returning Rangers skipper James Tavernier’s throw-in helped on by Hearts defender Stuart Findlay’s head and makeshift left-back Sterling getting his downward shot away.
Earlier, Hearts’ Craig Halkett and Tochi Chukwuani of Rangers had exchanged headers over from dead-ball deliveries.
Kingsley found himself free on the left of the box to convert following Kyziridis’ endeavours on the opposite side.
Emmanuel Fernandez’s header almost restored Rangers’ lead following another Tavernier throw.
And it was Kingsley’s spade-work in chasing the ball to the line that was rewarded when Shankland turned in with a fierce left-foot drive near the edge of the box.
Half-time substitute and last week’s Edinburgh derby match winner Blair Spittal was a key component in Hearts’ resurgence and his sweeping shot required an outstanding Jack Butland save to prevent a third for the hosts.
There was still time for a twist and it almost went the way of Danny Rohl’s visitors when substitute Thelo Aasgaard’s header bounced off the crossbar. With that ended their hopes of a draw and any real prospect of catching the long-time league leaders.
Successive defeats by Motherwell and Hearts also means Rangers can be counted out for the runners-up spot if they lose to defending champions Celtic on Sunday.