Match ends, Heart of Midlothian 0, Rangers 2.
Scottish Premiership leaders Rangers extended manager Giovanni van Bronckhorst's winning league start after a blistering first-half attacking display earned victory at Hearts.
Alfredo Morelos slotted an early opener before Joe Aribo slammed in a quickfire second within four devastating minutes.
The hosts - who had Josh Ginnelly dismissed late on - had plenty of chances, but could not make them count.
Rangers stay four points above Celtic who beat Motherwell later on Sunday.
Hearts stay third, five points clear of Dundee United and Motherwell.
Celtic, who have played a game fewer, can narrow the gap back to four when they welcome Motherwell later on Sunday.
"We knew it was going to be a really difficult game," Van Bronckhorst told Rangers TV post-match. "We had to be on top of our game from the first minute and we were. We damaged them in a couple of transition moments.
"The more we train, the more we talk with each other, the better we become. We still have a lot of things to work on but we have time, so I'm really happy with the past weeks."
The defeat is the first Robbie Neilson's side have suffered at Tynecastle this season. On another day, their unbeaten home run may still be intact, but the Hearts boss will rue a lack of ruthless finishing from his players and an inspired Allan McGregor in the Rangers goal.
Rangers had failed to win on their last three visits to Tynecastle, heightening the challenge for Van Bronckhorst's men, which the Dutchman was keen to highlight before the match.
And his side were almost chasing the game early in a frantic start after a simple ball forward caught the away defence out, resulting in Liam Boyce forcing McGregor to acrobatically tip a lobbed attempt over.
Rangers' backline looked ropey, but the same could not be said for their electric attack.
The Hearts defence simply could not deal with the scintillating visiting frontline, who broke the deadlock when Fashion Sakala breezed by Cammy Devlin and cut back to Morelos to sweep home low in the ninth minute.
Sakala should have doubled the lead seconds later, drilling an effort on the volley from the right of the box narrowly past the far post, but Aribo made no mistake as the champions notched a second goal four minutes later.
Connor Goldson picked out the midfielder on the run with a stunning long-range pass, which was plucked out of the sky by Aribo and smashed low across Scotland keeper Craig Gordon.
Neilson's side were still throwing punches, though, as Boyce and Ginnelly both had strikes whistle past either post. A fine pass from Devlin then sent Boyce in behind and he forced McGregor into another smart stop.
The home side continued to press after the break. Gary Mackay-Steven made McGregor tip over after a well-worked corner and a Ginnelly cross clipped Calvin Bassey before striking the bar.
Rangers sacrificed a lot of the ball in the second half, but could have put the game beyond reach when Scott Arfield, Sakala and Morelos all had shots thwarted by Gordon, with the latter's effort falling back to Arfield who dragged an attempt wide.
But failure to take at least one of those four chances left the door open for Hearts as Mackay-Steven cut back to Boyce - via a deflection off Goldson's hand - who skied over from close range.
Free-kick specialist Stephen Kingsley then saw a stunning set-piece attempt crash off the bar, but the home side lost their discipline soon after.
Ginnelly, booked earlier, got involved in a needless confrontation with Borna Barisic and saw a second yellow for his troubles.
But even with 10 men, Hearts still threatened as substitute Ben Woodburn forced McGregor to save down to his left.
Boyce attempted to blast home the rebound but was again denied by the Rangers keeper, who sprung up instantly to make another superb save. It ensured his side travelled back to Glasgow with a fourth clean sheet in six games.
Man of the match - Allan McGregor
What did we learn?
Van Bronckhorst was bold in his line-up and it paid off big time for the Rangers boss. The attacking flair on show from Ryan Kent, Morelos, Sakala and Aribo was key in establishing an early two-goal lead.
The Ibrox manager will not be content with the amount of chances Hearts fashioned for themselves, but it is now three clean sheets in four league games since the Dutchman has taken over, Prior to his arrival, Rangers had kept three in their opening 13 Premiership fixtures.
There is a big Beni Baningime-shaped hole in the Hearts midfield. While Neilson's men were undone by scintillating attacking play from the champions, the home side missed the absent midfielder's presence in four vital first-half minutes to break up play and restore calm.
But even without the ex-Everton man, the hosts still arguably had the better of the chances. Neilson's attack has failed to score in three of their last five games. That cannot become a trend as the Tynecastle side aim to solidify third place.
What did they say?
Hearts manager Robbie Neilson: "I actually think that, over the course of the first half, we were the better team.
"Rangers had two shots on goal and scored twice. We dominated the game but didn't have that final moment."
Rangers manager Giovanni van Bronckhorst: "We have to show desire every game we play. So far we are doing that, but we have to keep on going.
"We'll enjoy the win against Hearts, but tomorrow we go again for the game against St Johnstone."
Hearts go to Dundee next Saturday while Rangers host Dundee United (15:00) GMT. But the Ibrox side are in action before then as they welcome St Johnstone on Wednesday (19:45).
Player of the match
Heart of Midlothian
- Squad number1Player nameGordonAverage rating
- Squad number4Player nameSouttarAverage rating
- Squad number18Player nameMcKayAverage rating
- Squad number11Player nameMackay-StevenAverage rating
- Squad number15Player nameMooreAverage rating
- Squad number5Player nameHaringAverage rating
- Squad number10Player nameBoyceAverage rating
- Squad number14Player nameDevlinAverage rating
- Squad number3Player nameKingsleyAverage rating
- Squad number19Player nameHalkettAverage rating
- Squad number9Player nameWoodburnAverage rating
- Squad number30Player nameGinnellyAverage rating
- Squad number21Player nameGnanduilletAverage rating
- Squad number17Player nameAriboAverage rating
- Squad number20Player nameMorelosAverage rating
- Squad number1Player nameMcGregorAverage rating
- Squad number30Player nameSakalaAverage rating
- Squad number14Player nameKentAverage rating
- Squad number6Player nameGoldsonAverage rating
- Squad number18Player nameKamaraAverage rating
- Squad number3Player nameBasseyAverage rating
- Squad number2Player nameTavernierAverage rating
- Squad number31Player nameBarisicAverage rating
- Squad number37Player nameArfieldAverage rating
- Squad number23Player nameWrightAverage rating
- Squad number4Player nameLundstramAverage rating
- 1GordonBooked at 54mins
- 19HalkettBooked at 37mins
- 5HaringBooked at 85mins
- 14DevlinBooked at 84minsSubstituted forGnanduilletat 86'minutes
- 30GinnellyBooked at 80mins
- 11Mackay-StevenSubstituted forWoodburnat 74'minutes
- 1McGregorBooked at 76mins
- 2TavernierBooked at 69mins
- 31BarisicBooked at 81mins
- 17AriboBooked at 70mins
- 30SakalaSubstituted forLundstramat 82'minutes
- 14KentBooked at 86mins
- 20MorelosSubstituted forWrightat 72'minutes
- Nick Walsh
- Shots on Target
Second Half ends, Heart of Midlothian 0, Rangers 2.
Corner, Rangers. Conceded by Craig Gordon.
Attempt saved. Ryan Kent (Rangers) left footed shot from outside the box is saved in the centre of the goal.
Foul by Craig Halkett (Heart of Midlothian).
Ryan Kent (Rangers) wins a free kick in the attacking half.
Foul by Liam Boyce (Heart of Midlothian).
Joe Aribo (Rangers) wins a free kick in the defensive half.
Attempt missed. Calvin Bassey (Rangers) left footed shot from the left side of the box is too high. Assisted by Glen Kamara.
Attempt saved. Peter Haring (Heart of Midlothian) right footed shot from more than 35 yards is saved in the bottom right corner.
Corner, Rangers. Conceded by John Souttar.
Foul by Ben Woodburn (Heart of Midlothian).
Scott Wright (Rangers) wins a free kick in the defensive half.
Substitution, Heart of Midlothian. Armand Gnanduillet replaces Cameron Devlin.
Ryan Kent (Rangers) is shown the yellow card.
Offside, Rangers. James Tavernier tries a through ball, but Ryan Kent is caught offside.
Attempt saved. Taylor Moore (Heart of Midlothian) header from the centre of the box is saved in the centre of the goal. Assisted by Barrie McKay with a cross.
Attempt saved. Liam Boyce (Heart of Midlothian) right footed shot from the right side of the six yard box is saved in the bottom right corner.
Corner, Heart of Midlothian. Conceded by Allan McGregor.
Attempt saved. Ben Woodburn (Heart of Midlothian) right footed shot from outside the box is saved in the bottom right corner.
- Call of Duty or Battlefield with Bukayo Saka: The England star talks gaming on Press X to Continue
- You're Dead to Me: Who was 'the epitome of the American Renaissance man'?