Rangers extended their lead in the Scottish Premier League to nine points with victory at Tynecastle.
Steven Whittaker set up Steven Naismith's strike for the opening goal after 20 minutes.
Substitute Nikica Jelavic heaped more misery on an industrious Hearts side when he volleyed a second with 15 minutes left.
The result maintains Rangers' clean sheet in six victories away from home in the league this season.
Jelavic had failed to make the starting line-up after struggling with a virus but was named on the bench, with Kyle Lafferty up front as a lone striker.
Hearts named an unchanged side for the fourth consecutive game and it was the home side who started brightest.
Having defeated Celtic at Tynecastle earlier this month, Paulo Sergio's side also dominated possession in the opening quarter of an hour against Ally McCoist's side, with Ryan Stevenson threatening in attack and David Templeton causing problems for Whittaker, leading to a booking for the Scotland international with 10 minutes gone.
But the home side's dominance was to be short-lived in this match, Rangers grabbing their opener with 20 minutes gone.
Maurice Edu fed a pass to Whittaker just inside the Rangers half, the defender powering forward through a clutter of Hearts players to find the run of Naismith, who escaped his marker and fired home under goalkeeper Marion Kello.
Rangers had the opportunity to extend that lead in the 35th minute, when Steven Davis's corner found Carlos Bocanegra in front of goal and the American's initial strike cleared by Eggert Jonsson only to fall to Maurice Edu.
The midfielder took a touch but could not compose himself, his shot firing over Kello's crossbar.
But there were heart-stopping moments for the Scottish Premier League champions in the run up to half-time with three further chances for the home side in the space of five minutes.
Ian Black hit a hopeful ball from his own half that appeared to catch the Rangers defence offguard, but a late pincer movement from Lee Wallace and Bocanegra thwarted Ryan Stevenson's run, poking the ball beyond Allan McGregor's post.
The pre-interval onslaught continued, with McGregor forced to make his first real save of the match when Rudi Skacel unleashed a driving shot from 25 yards out.
Next up was Stevenson, who was booked after appearing to use an arm as he attempted to nod home from close range.
After the restart, Lafferty found himself with a half chance within seconds, his shot inside the penalty box sailing over the bar.
That spurred Hearts into action, with Bocanegra forced to clear with his head from a volleyed chance from Jonsson, seconds after a dangerous looking ball from Adrian Mrowiec crossed the face of the Rangers goalmouth.
There was concern for the lively Templeton just before the hour mark when his studs appeared to stick in the Tynecastle surface, the winger able to continue after treatment from what looked a more serious injury.
It was a rejuvenated Templeton's invention that created a gilt-edged chance for an equaliser five minutes later.
He danced around Doran Goian on the left channel before crossing the ball in to Mrowiec, who lacked composure as his left footed shot went wide of the target from five yards.
That was the cue for the introduction of Jelavic, who replaced Lafferty, while Sasa Papac gave way to Gregg Wylde for the last 18 minutes of the match.
The Croat's impact was immediate despite his absence from training in recent days through illness. A long ball from Bocanegra required the striker to evade the attentions of Zaliukas, his volleyed diagonal finish flashing past a helpless Kello to double Rangers' advantage.
Templeton continued to be industrious, forcing a double save from McGregor just seconds after Jelavic's strike, but Hearts were limited in their opportunities in the later stages as Rangers' impressive away form continued.