Rangers extended their lead at the top of the SPL to six points but it was a largely frustrating time for the Ibrox side.
In the end an own goal from Scott Severin was all that separated the teams despite the Glasgow side's domination throughout.
In a bruising encounter referee John Underhill did well to restrict his involvement to the brandishing of six yellow cards - all six of them to Hearts players - when the dreaded red seemed likely to appear from the pocket on a couple of occasions.
It was Hearts who threatened first, Mark De Vries testing Stefan Klos at his near post with a powerful shot in the eighth minute.
But from then on Rangers controlled proceedings.
Mikel Arteta, Claudio Caniggia and Ronald de Boer all threatened before Lorenzo Amoruso fired a 25-yard free kick inches wide of the left hand post in the 20th minute.
Then, in the 23rd minute, the home support was brought to their feet when de Boer had his effort chopped off for offside.
Captain Barry Ferguson superbly released Caniggia on the left and he somehow evaded the attempts of Tepi Moilanen to free the ball for de Boer to slot home.
Referee Underhill quite rightly over ruled his linesman, who had adjudged the Rangers player onside, and called back play.
Jean Louis Valois tested Klos on the half hour mark but then in the 41st minute Rangers took the lead.
Arteta curled in a free kick from the left and Severin inadvertently headed the ball into his own net while trying to clear the danger.
Substitute Shota Arveladze should have sealed victory for Rangers in the 72nd minute but he contrived to shoot wide after good work from fellow substitute Peter Lovenkrands and Ferguson.
Moilanen did superbly well to prevent a de Boer volley at the far post from finding its way into the back of the net just three minutes later.
Rangers survived a late goalmouth scramble to maintain their 100 per cent home record and widen the gap at the top.