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.

Interview - Hearts boss Robbie Neilson

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.

Nicky Law scores for Rangers against Hearts

Law scored but parity would be short-lived

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 striker Osman Sow

Sow had the last word with the winning goal

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.

Lineup, Bookings (8) & Substitutions (6)

Rangers

  • 01 Bell
  • 26 Zaliukas Booked
  • 06 McCulloch
  • 23 Foster Booked (McGregor - 92' )
  • 05 Wallace
  • 10 MacLeod
  • 08 Black (Hutton - 49' )
  • 07 Law
  • 11 Templeton (Shiels - 72' )
  • 18 Miller
  • 15 Boyd

Substitutes

  • 02 Smith
  • 04 Aird
  • 14 Clark
  • 20 Hutton
  • 22 Shiels
  • 24 McGregor
  • 31 Simonsen

Heart of Midlothian

  • 01 Alexander (Gallacher - 67' )
  • 30 McGhee Booked (McKay - 55' Booked )
  • 05 Ozturk
  • 03 McHattie Booked
  • 04 Wilson Booked
  • 11 Nicholson
  • 12 King
  • 06 Gomis Booked
  • 17 Buaben
  • 18 Carrick (Holt - 82' )
  • 20 Sow Booked

Substitutes

  • 10 Holt
  • 14 Smith
  • 15 Gallacher
  • 16 Oliver
  • 19 Keatings
  • 22 McKay
  • 29 Smith
Ref: Craig Thomson
Att: 43,683

Match Stats

Shots

10 8

On target

2 3

Corners

5 7

Fouls

12 26

Live Text Commentary

Full time

Full Time Match ends, Rangers 1, Hearts 2.

90:00 +6:30 Full time

Full Time Second Half ends, Rangers 1, Hearts 2.

90:00 +6:00

Foul by Kenny Miller (Rangers).

90:00 +6:00

Danny Wilson (Hearts) wins a free kick in the attacking half.

90:00 +4:49

Foul by Nicky Law (Rangers).

90:00 +4:49

Jason Holt (Hearts) wins a free kick in the defensive half.

90:00 +2:30

Attempt missed. Kenny Miller (Rangers) left footed shot from the centre of the box is just a bit too high.

90:00 +1:12 Goal scored

Goal! 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.

90:00 +1:10 Substitution

Substitution Substitution, Rangers. Darren McGregor replaces Richard Foster.

90:00 +0:07 Goal scored

Goal! 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.

88:55

Attempt blocked. Kenny Miller (Rangers) left footed shot from outside the box is blocked.

88:15

Nicky Law (Rangers) wins a free kick in the attacking half.

88:15

Foul by Jason Holt (Hearts).

87:33

Corner, Hearts. Conceded by Marius Zaliukas.

87:25

Attempt blocked. Jason Holt (Hearts) right footed shot from the centre of the box is blocked.

86:57 Booking

Booking Morgaro Gomis (Hearts) is shown the yellow card.

86:48

Lewis MacLeod (Rangers) wins a free kick in the attacking half.

86:48

Foul by Morgaro Gomis (Hearts).

86:00

Dean Shiels (Rangers) wins a free kick in the defensive half.

85:57

Foul by Morgaro Gomis (Hearts).

82:40

Hand ball by Sam Nicholson (Hearts).

81:15 Substitution

Substitution Substitution, Hearts. Jason Holt replaces Dale Carrick because of an injury.

80:09

Dean Shiels (Rangers) wins a free kick in the defensive half.

80:09

Foul by Morgaro Gomis (Hearts).

79:24 Booking

Booking Richard Foster (Rangers) is shown the yellow card.

79:20

Foul by Richard Foster (Rangers).

79:20

Kevin McHattie (Hearts) wins a free kick in the attacking half.

78:48

Attempt blocked. Kevin McHattie (Hearts) left footed shot from the left side of the box is blocked.

77:45 Booking

Booking Danny Wilson (Hearts) is shown the yellow card.

77:38

Lewis MacLeod (Rangers) wins a free kick in the attacking half.

77:38

Foul by Danny Wilson (Hearts).

74:50

Attempt missed. Kyle Hutton (Rangers) right footed shot from outside the box is too high.

74:10

Marius Zaliukas (Rangers) wins a free kick in the defensive half.

74:10

Foul by Osman Sow (Hearts).

71:51

Kenny Miller (Rangers) wins a free kick on the left wing.

71:51

Foul by Prince Buaben (Hearts).

71:06 Substitution

Substitution Substitution, Rangers. Dean Shiels replaces David Templeton.

70:16

Corner, Hearts. Conceded by Kris Boyd.

69:53

Corner, Hearts. Conceded by Kyle Hutton.

69:07

Kenny Miller (Rangers) wins a free kick in the defensive half.

69:07

Foul by Kevin McHattie (Hearts).

66:56 Substitution

Substitution Substitution, Hearts. Scott Gallacher replaces Neil Alexander because of an injury.

63:24

Delay in match Neil Alexander (Hearts) because of an injury.

62:20

Lewis MacLeod (Rangers) wins a free kick in the attacking half.

62:20

Foul by Dale Carrick (Hearts).

61:00

Lewis MacLeod (Rangers) wins a free kick in the defensive half.

60:58

Foul by Morgaro Gomis (Hearts).

58:45

Corner, Rangers. Conceded by Danny Wilson.

57:52

Attempt saved. Kenny Miller (Rangers) header from the left side of the six yard box is saved in the centre of the goal.

57:12

Corner, Rangers. Conceded by Alim Ozturk.

56:44

Kenny Miller (Rangers) wins a free kick on the right wing.

56:44

Foul by Danny Wilson (Hearts).

54:49 Booking

Booking Brad McKay (Hearts) is shown the yellow card.

54:40

David Templeton (Rangers) wins a free kick in the attacking half.

54:40

Foul by Brad McKay (Hearts).

54:22 Substitution

Substitution Substitution, Hearts. Brad McKay replaces Jordan McGhee.

53:54

Marius Zaliukas (Rangers) wins a free kick in the defensive half.

53:54

Foul by Osman Sow (Hearts).

52:17 Goal scored

Goal! Goal! Rangers 0, Hearts 1. Danny Wilson (Hearts) header from the centre of the box to the top right corner. Assisted by Billy King with a cross following a corner.

52:01

Corner, Hearts. Conceded by Lee Wallace.

50:39

Foul by Kyle Hutton (Rangers).

50:39

Prince Buaben (Hearts) wins a free kick in the attacking half.

49:41

Foul by Lee Wallace (Rangers).

49:41

Billy King (Hearts) wins a free kick on the left wing.

49:16

David Templeton (Rangers) wins a free kick on the right wing.

49:16

Foul by Jordan McGhee (Hearts).

48:55

Foul by David Templeton (Rangers).

48:55

Morgaro Gomis (Hearts) wins a free kick in the defensive half.

48:22 Substitution

Substitution Substitution, Rangers. Kyle Hutton replaces Ian Black because of an injury.

46:34

Corner, Rangers. Conceded by Jordan McGhee.

46:12

Nicky Law (Rangers) wins a free kick on the left wing.

46:12

Foul by Morgaro Gomis (Hearts).

45:35

Ian Black (Rangers) wins a free kick in the attacking half.

45:35

Foul by Prince Buaben (Hearts).

45:00

Second Half begins Rangers 0, Hearts 0.

45:00 +0:13 Half time

Half Time First Half ends, Rangers 0, Hearts 0.

44:19

Corner, Hearts. Conceded by Lewis MacLeod.

43:10

Foul by Richard Foster (Rangers).

43:10

Dale Carrick (Hearts) wins a free kick on the left wing.

42:34

Corner, Rangers. Conceded by Alim Ozturk.

41:51

Attempt saved. Sam Nicholson (Hearts) header from the centre of the box is saved in the centre of the goal.

40:02

Kenny Miller (Rangers) wins a free kick on the right wing.

40:02

Foul by Alim Ozturk (Hearts).

37:50 Booking

Booking Marius Zaliukas (Rangers) is shown the yellow card.

37:41

Foul by Marius Zaliukas (Rangers).

37:41

Sam Nicholson (Hearts) wins a free kick in the attacking half.

36:12

Attempt missed. Marius Zaliukas (Rangers) header from the centre of the box is close, but misses to the left following a set piece situation.

35:34 Booking

Booking Kevin McHattie (Hearts) is shown the yellow card.

35:22

Lewis MacLeod (Rangers) wins a free kick in the attacking half.

35:22

Foul by Kevin McHattie (Hearts).

34:50

Attempt missed. Danny Wilson (Hearts) header from the centre of the box misses to the right following a corner.

34:19

Corner, Hearts. Conceded by Richard Foster.

32:38

Foul by Kris Boyd (Rangers).

32:38

Alim Ozturk (Hearts) wins a free kick in the defensive half.

29:34 Booking

Booking Osman Sow (Hearts) is shown the yellow card.

29:22

Ian Black (Rangers) wins a free kick in the defensive half.

29:22

Foul by Osman Sow (Hearts).

25:40

Attempt missed. David Templeton (Rangers) header from the centre of the box is close, but misses to the left.

23:39

Ian Black (Rangers) wins a free kick in the attacking half.

23:39

Foul by Osman Sow (Hearts).

23:13

Foul by Lewis MacLeod (Rangers).

23:13

Kevin McHattie (Hearts) wins a free kick on the right wing.

20:47 Booking

Booking Jordan McGhee (Hearts) is shown the yellow card.

20:39

Lee Wallace (Rangers) wins a free kick in the defensive half.

20:39

Foul by Jordan McGhee (Hearts).

19:45

David Templeton (Rangers) wins a free kick in the defensive half.

19:45

Foul by Morgaro Gomis (Hearts).

18:51

Attempt missed. David Templeton (Rangers) header from the centre of the box is just a bit too high.

18:40

Attempt blocked. Kenny Miller (Rangers) right footed shot from the right side of the box is blocked.

16:41

Attempt missed. Sam Nicholson (Hearts) left footed shot from outside the box misses to the left.

14:08

Foul by Lee Wallace (Rangers).

14:08

Jordan McGhee (Hearts) wins a free kick on the left wing.

11:00

David Templeton (Rangers) wins a free kick in the attacking half.

10:59

Foul by Dale Carrick (Hearts).

8:59

Attempt blocked. Kris Boyd (Rangers) right footed shot from the right side of the box is blocked.

8:07

Attempt missed. Jordan McGhee (Hearts) right footed shot from outside the box is too high.

7:28

Corner, Hearts. Conceded by Cammy Bell.

7:00

Foul by Lee McCulloch (Rangers).

7:00

Osman Sow (Hearts) wins a free kick in the attacking half.

4:04

David Templeton (Rangers) wins a free kick in the attacking half.

4:04

Foul by Morgaro Gomis (Hearts).

3:32

Lee McCulloch (Rangers) wins a free kick in the attacking half.

3:32

Foul by Dale Carrick (Hearts).

1:25

Corner, Rangers. Conceded by Alim Ozturk.

0:00

First Half begins.

0:00

Lineups are announced and players are warming up.

Live data and text provided by our data suppliers