Hearts suffered their first away league defeat for 13 months despite playing against a Rangers side who had only ten men for half the match.
The recently-crowned Championship winners were given a guard of honour onto the Ibrox pitch by their Rangers counterparts, but that is where the fired-up hosts’ generosity towards Robbie Neilson’s team ended.
Stuart McCall’s side looked the hungrier side from the start and claimed a deserved victory courtesy of goals from Kenny Miller and Haris Vuckic. Not even the dismissal of home captain Lee McCulloch just before the break was enough to significantly alter the flow of the game in favour of the visitors, although they did enjoy a late flourish which brought a goal from Genero Zeefuik.
The defeat was only the second of Hearts’ Championship campaign and their first league defeat away from Tynecastle since they lost 4-2 at Kilmarnock in the Premiership on March 8 last year. It allowed Rangers to move three points clear of Hibs with a game in hand.
The Ibrox side started strongly and threatened after two minutes when Nicky Law volleyed in a shot from the edge of the box after being picked out by a Vuckic corner, but Hearts goalkeeper Neil Alexander was equal to it.
Hearts, who had been second best for much of the early exchanges, almost conjured an opener with their first chance when Osman Sow burst from midway inside the Rangers half into the box, but his shot was blocked by a brilliant intervention from former Jambos left-back Lee Wallace.
The champions went close again in 20 minutes when Jamie Walker cut in from the left and fired a low 30-yard strike inches past Cammy Bell’s left-hand post.
But it was Rangers who went ahead in 28 minutes when Wallace’s low cross from the left was rasped in from seven yards out by Kenny Miller.
Hearts tried to respond in 33 minutes, with Alim Ozturk’s 35-yard free-kick punched out by Bell before Sam Nicholson drilled a low angled shot just beyond the far post.
A minute later, Walker saw a low shot from just inside the box scrambled behind for a corner by Bell.
Rangers doubled their lead in the 38th minute when Vuckic collected possession on the edge of the box, stepped inside McHattie and curled a low shot beyond Alexander from 16 yards out.
However, the hosts were reduced to ten men a minute before the break when McCulloch was sent off for elbowing Sow when challenging for a high ball.
Despite being a man down, Rangers coped comfortably with Hearts early in the second half and should have extended their lead in 58 minutes when Clark fluffed a chance after being teed up eight yards out by a low Law delivery.
Ozturk had a chance to pull one back in 65 minutes when a corner from sub Billy King broke to him at the far post, but the Turk sent his angled shot over the bar from eight yards out.
At the other end, Miller saw a shot tipped over by Alexander after Hearts failed to deal with a Law corner.
Hearts gave themselves hope in 82 minutes when Zeefuik tapped into an empty net after Sow’s header from a long Ozturk cross was parried out by Bell.
Rangers (4-4-2): Bell; McGregor, McCulloch, Zaliukas, Wallace; Vuckic (Mohsni 46), Murdoch, Shiels (Black 77), Law; Clark, Miller (Crawford 72). Unused subs: Simonsen, Templeton, Boyd, Hardie.
Hearts (4-4-2): Alexander; Paterson, Ozturk, Wilson, McHattie (Keatings 74); Nicholson, Pallardo, Gomis (King 60), Sow; Zeefuik, Walker. Unused subs: Hamilton, El Hassnaoui, Anderson, McKay, McGhee.
Referee: Bobby Madden