The win allowed the Jambos to move to within two points of the Scottish champions and strengthen their case for a three-way fight for the championship, or to at least split the Old Firm this season.
Defeat at Tynecastle denied Rangers the opportunity to move into pole position ahead of Celtic's game later in the day, with the Hoops next up to face Hearts.
Hearts striker Kevin Kyle failed to recover from a groin problem, meaning Stevenson was deployed in an unfamiliar forward role, while Rudi Skacel was passed fit for the clash at Tynecastle.
Rangers were boosted by the return of Madjid Bougherra from suspension and both Steven Naismith and Sasa Papac from injury. Kyle Lafferty started up front following Kenny Miller's midweek departure to Bursaspor.
The match was just 27 seconds old when Hearts goalkeeper Marian Kello was called into action to parry a Lafferty shot to his right after the striker carved out an early chance on goal.
At the other end, Skacel did well to cut inside before setting up Stevenson in front of goal but he volleyed well over, with Allan McGregor untroubled in the Rangers goal.
Lafferty had another chance for Rangers when he collected from Maurice Edu but connected awkwardly and his tame effort was easily gathered by Kello.
Rangers still looked dangerous and Naismith slipped a lovely pass to Jamie Ness in plenty of space and the youngster forced a decent save from Kello, before seeing a swerving effort tipped just wide of the far post seconds later.
It was proving to be a busy afternoon for Kello, who blocked another stinging shot from Lafferty, before denying Naismith the opener from a powerful drive.
Lee McCulloch then picked up the first yellow card of the game for a clumsy challenge on David Templeton. He was joined in referee Mike Tumilty's book by Bougherra for a foul on Stevenson.
With half-time fast approaching, Skacel could have snatched the lead for Hearts with a shot from the left which fizzed across the face of goal and past the upright, before McGregor blocked from Stephen Elliott.
Rangers tried to break the deadlock shortly after the restart when Papac went on a surging run before seeing his point-blank shot blocked by Kello, who was in superb form for Hearts.
The champions had another chance to pile on the pressure when Lafferty was fouled by Ismael Bouzid 25 yards out but a decent opportunity was squandered when Steven Davis' free-kick failed to make it past the Hearts wall.
Lafferty was withdrawn with 20 minutes to go and replaced by Nikica Jelavic, who had recently returned to action after recovering from a serious ankle injury sustained at the same venue almost four months ago.
But it was Hearts who opened the scoring after 77 minutes. Skacel went to ground in the box under pressure from Ness but there was no penalty as play raged on in the packed goalmouth.
Skacel picked himself up to have a half-shot on goal which was forced into the back of the net by Stevenson from close-range.
Rangers could have hauled themselves level when Jelavic tried his luck with an ambitious overhead kick which crashed off the underside of the bar as Hearts held on for the win.