Match ends, Rangers 1, Hearts 2.
Hearts scored a stoppage-time winner against Rangers at Ibrox to seal a dream start to their Scottish Championship campaign.
Danny Wilson headed the visitors in front early in the second half, a lead that they held until time added on.
However, in an incredible finale Nicky Law equalised with the 90 minutes up.
Then Osman Sow had the final say when he drove through the Rangers defence and hammered Hearts back in front just a minute later to win the game.
Hearts suffered a blow when goalkeeper Neil Alexander was taken to hospital after a clash of heads with his team-mate Alim Ozturk.
However, they begin the season with a strong statement of intent with an impressive victory in Glasgow.
Before the game Sandy Jardine's team-mates from Rangers' 1972 European Cup Winners Cup win made their way on to the pitch for the re-naming of the Govan Stand in his honour.
Fans held out cards spelling out "Sandy Legend" as Rangers captain Lee McCulloch unfurled the League One flag.
There were very nearly celebrations in the stands early in the game when a poor pass-back put Alexander under pressure in the Hearts goal.
But the former Ibrox goalkeeper managed to recover with Kenny Miller and Kris Boyd both attempting to latch onto the loose ball.
After that hiccup, Hearts began to move the ball about well, but they looked vulnerable at the back and Rangers really should have gone in front after 19 minutes.
Miller found space in the box but his shot was blocked by Ozturk. The deflection fell for David Templeton, but he somehow put his close-range header over the bar.
Rangers gradually began to look the more comfortable team, but their final ball let them down. Law poked a pass just too far ahead of Miller with Hearts carved open and the defence were able to recover.
Two former Hearts players almost combined to find the elusive opener when Ian Black's free-kick found the head of Marius Zaliukas, but the Lithuanian glanced his header just wide.
After soaking up the majority of the first-half pressure, Robbie Neilson's men began to take control.
Wilson found space on the left and his inviting ball almost found the stretching Ozturk. Minutes later, Sam Nicholson arrived late in the box to head Sow's cross straight at Cammy Bell.
And the Gorgie men started the second half just as well, taking advantage of the set piece to take the lead.
Wilson squeezed between McCulloch and Lee Wallace to bullet Billy King's corner into the net and spark wild celebrations from Hearts' 1,700 strong travelling support.
Rangers tried to respond and Miller's flick at the near post sparked a goal-line scramble, but King eventually hammered it away.
Hearts suffered a blow when Alexander collided with team-mate Ozturk as he attempted to collect the ball. The goalkeeper could not continue, and another former Rangers man, Scott Gallacher, replaced him.
His former side struggled to test him, though, with their best chances all blocked by maroon shirts in the box.
That was until a frantic finale, when Rangers thought they had got themselves out of jail. Miller's knockdown found Law in the box and the midfielder hammered past Gallacher in time added on.
However, the celebrations lasted just a minute. Sow raced onto Nicholson's through ball and thumped Hearts back in front.
Yet, it was still not the last action of the game. Lee Wallace's low cross ricocheted in the box and Miller should have burst the net, but he swiped wide, condemning Rangers to an opening-day defeat.
- 26ZaliukasBooked at 38mins
- 23FosterBooked at 80minsSubstituted forMcGregorat 90+2'minutes
- 8BlackSubstituted forHuttonat 49'minutes
- 11TempletonSubstituted forShielsat 72'minutes
- 1AlexanderSubstituted forGallacherat 67'minutes
- 30McGheeBooked at 21minsSubstituted forMcKayat 55'minutesBooked at 55mins
- 3McHattieBooked at 36mins
- 4WilsonBooked at 78mins
- 6GomisBooked at 87mins
- 18CarrickSubstituted forHoltat 82'minutes
- 20SowBooked at 30mins
- Craig Thomson
- Shots on Target
Second Half ends, Rangers 1, Hearts 2.
Foul by Kenny Miller (Rangers).
Danny Wilson (Hearts) wins a free kick in the attacking half.
Foul by Nicky Law (Rangers).
Jason Holt (Hearts) wins a free kick in the defensive half.
Attempt missed. Kenny Miller (Rangers) left footed shot from the centre of the box is just a bit too high.
Goal! Rangers 1, Hearts 2. Osman Sow (Hearts) left footed shot from the left side of the box to the bottom right corner. Assisted by Sam Nicholson.
Substitution, Rangers. Darren McGregor replaces Richard Foster.
Goal! Rangers 1, Hearts 1. Nicky Law (Rangers) right footed shot from the centre of the box to the bottom left corner. Assisted by Kenny Miller.
Attempt blocked. Kenny Miller (Rangers) left footed shot from outside the box is blocked.
Nicky Law (Rangers) wins a free kick in the attacking half.
Foul by Jason Holt (Hearts).
Corner, Hearts. Conceded by Marius Zaliukas.
Attempt blocked. Jason Holt (Hearts) right footed shot from the centre of the box is blocked.
Morgaro Gomis (Hearts) is shown the yellow card.
Lewis MacLeod (Rangers) wins a free kick in the attacking half.
Foul by Morgaro Gomis (Hearts).
Dean Shiels (Rangers) wins a free kick in the defensive half.
Foul by Morgaro Gomis (Hearts).