Rangers took a step towards clinching second place in the Scottish Premier League with victory against Scottish Cup finalists Hearts.
Sone Aluko's superbly struck free-kick gave Rangers the lead on 29 minutes.
Andy Little was credited with the visitors' second six minutes later, although Hearts' Andy Webster appeared to get the final touch.
Craig Beattie's penalty for Hearts cannoned off the bar before Little tapped home a late third for Rangers.
Ally McCoist's side move 11 points clear of Motherwell, who host Celtic on Sunday, while sixth-place Hearts' hopes of securing a European place through the league take a blow, with Paulo Sergio's men four points off Dundee United in fourth.
Lee McCulloch's shot on the turn was straight into the hands of Hearts goalkeeper Jamie MacDonald and Webster then made an important block as Kyle Bartley threatened for the Ibrox outfit.
However, the visitors moved into the lead after Webster was adjudged to have fouled Maurice Edu and Aluko swept his shot up and over the wall, beating MacDonald's despairing dive.
The Hearts defence continued to come under pressure and MacDonald made an excellent save to turn away McCulloch's shot from Steven Whittaker's cutback.
And the hosts were undone again as Lee Wallace's cross bounced up off Little and a combination of the forward's sliced shot and Webster's attempted clearance carried the ball over MacDonald into the net.
Rangers keeper Allan McGregor saved at the feet of Skacel and Beattie dragged an effort wide as Hearts pressed at the start of the second half.
Webster was then afforded a chance at a corner, the defender drilling a shot off the base of the post on its way out.
Skacel's powerful strike was matched by McGregor's reaction save shortly before Aluko's trip on David Templeton resulted in a Hearts penalty.
Beattie, who converted from 12 yards to clinch victory in last week's Scottish semi-final against Celtic, smacked his latest spot-kick attempt off the crossbar and the pressure on the Rangers defence was relieved when Gary Glen could not connect with a back-post cross.
And the visitors added to their tally when Whittaker released Wallace in behind the Hearts defence and the full-back chipped the ball over MacDonald to Little, who touched the ball into the empty net.
Heart of Midlothian
- 30 MacDonald
- 03 Grainger
- 05 Barr (Glen - 68' )
- 06 Webster
- 17 McGowan
- 26 Zaliukas
- 08 Black
- 11 Driver (Templeton - 68' )
- 19 Skacel Booked
- 04 Beattie
- 10 Elliott (Santana - 46' )
- 28 Ridgers
- 07 Santana
- 12 Templeton
- 35 Prychynenko
- 18 Novikovas
- 23 Glen
- 27 Robinson
- 01 McGregor
- 02 Goian Booked (Perry - 76' )
- 12 Wallace
- 16 Whittaker Booked
- 18 Bocanegra
- 22 Bartley Booked
- 06 McCulloch
- 07 Edu
- 19 Aluko (Kerkar - 76' )
- 41 McCabe
- 34 Little
- 25 Alexander
- 32 Perry
- 37 Christopher Hegarty
- 21 Bedoya
- 40 Andrew Mitchell
- 15 Healy
- 28 Kerkar
Live Text Commentary
Full Time The final whistle goes and the game is over.90:00 +2:40
Unfair challenge on Suso Santana by Lee Wallace results in a free kick. Ian Black delivers the ball from the free kick right-footed from right wing, Andrew Little manages to make a clearance.90:00 +2:09 Booking
Booking Rudi Skacel goes into the book.90:00 +2:05
The official flags Rudi Skacel offside. Allan McGregor takes the indirect free kick.89:10
The official flags Lee McCulloch offside. Andy Webster restarts play with the free kick.87:02
Assist by Lee Wallace.87:02 Goal scored
Goal! - Andrew Little - Hearts 0 - 3 Rangers Andrew Little finds the net with a goal from close in low into the middle of the goal. Hearts 0-3 Rangers.85:04
Lee McCulloch is ruled offside. Jamie MacDonald takes the free kick.84:11
The referee blows for offside. Allan McGregor takes the free kick.81:57
Rudi Skacel fires a strike on goal direct from the free kick.81:57 Booking
Booking Kyle Bartley receives a yellow card for unsporting behaviour.81:53
Free kick awarded for a foul by Kyle Bartley on David Templeton.80:53
Effort on goal by Lee Wallace from inside the penalty box misses to the right of the target.77:33
Jamie MacDonald takes the direct free kick.77:33 Booking
Booking Steven Whittaker receives a yellow card for unsporting behaviour.76:58
Foul by Steven Whittaker on Daniel Grainger, free kick awarded.75:31 Substitution
Substitution Ross Perry comes on in place of Dorin Goian.75:31 Substitution
Substitution Sone Aluko leaves the field to be replaced by Salim Kerkar.73:46 Penalty
Penalty missed over the bar by Craig Beattie.73:46
Foul by Sone Aluko on David Templeton, Penalty awarded.
Corner taken short by Daniel Grainger.73:15
Rudi Skacel has an effort at goal. Allan McGregor makes a save.72:31
Free kick awarded for a foul by Carlos Bocanegra on Craig Beattie. Daniel Grainger crosses the ball in from the free kick, Dorin Goian makes a clearance.72:09
A cross is delivered by Lee Wallace.69:33
Ian Black takes the outswinging corner, Andy Webster produces a right-footed shot from close range which goes wide of the left-hand post.69:22
The ball is swung over by Daniel Grainger, clearance made by Dorin Goian.68:29
Free kick awarded for a foul by Sone Aluko on Ryan McGowan. Daniel Grainger shoots direct from the free kick.67:10 Substitution
Substitution David Templeton comes on in place of Andrew Driver.67:10 Substitution
Substitution Darren Barr goes off and Gary Glen comes on.66:49
The ball is sent over by Darren Barr, Kyle Bartley manages to make a clearance.65:59
Maurice Edu gives away a free kick for an unfair challenge on Ian Black. Direct free kick taken by Ian Black.63:40
Dorin Goian concedes a free kick for a foul on Ryan McGowan. Jamie MacDonald takes the free kick.63:10
Corner taken by Rhys McCabe, Daniel Grainger manages to make a clearance.61:15
Rhys McCabe takes the inswinging corner, Andy Webster manages to make a clearance.60:22
Unfair challenge on Lee McCulloch by Marius Zaliukas results in a free kick. Free kick crossed left-footed by Sone Aluko.59:19
Andrew Little produces a cross.56:03
The offside flag is raised against Rudi Skacel. Allan McGregor takes the indirect free kick.55:43
Lee McCulloch challenges Ryan McGowan unfairly and gives away a free kick. Andy Webster restarts play with the free kick.54:16
Ian Black takes a shot. Allan McGregor makes a save.54:00
Craig Beattie is flagged offside by the assistant referee. Free kick taken by Carlos Bocanegra.52:56
Ryan McGowan fouled by Sone Aluko, the ref awards a free kick. Andy Webster restarts play with the free kick.52:22
Rudi Skacel has an effort at goal from outside the penalty area which goes wide right of the goal.51:57
Foul by Andrew Driver on Lee Wallace, free kick awarded. Direct free kick taken by Allan McGregor.50:09
Craig Beattie produces a left-footed shot from just outside the box that goes wide right of the goal.45:01
The second half has started.45:01 Substitution
Substitution Suso Santana is brought on as a substitute for Stephen Elliott.45:00 +0:04 Half time
Half Time The match has reached half-time.44:15
The ball is crossed by Ian Black, Lee McCulloch makes a clearance.43:50
Inswinging corner taken by Ian Black from the left by-line.43:35
The ball is swung over by Daniel Grainger, Steven Whittaker manages to make a clearance.42:49
Daniel Grainger takes a inswinging corner from the right by-line played to the near post, clearance made by Lee Wallace.41:55
Ian Black delivers the ball from the free kick right-footed from left channel.41:55 Booking
Booking Dorin Goian receives a caution for unsporting behaviour.41:40
Dorin Goian challenges Andrew Driver unfairly and gives away a free kick.40:07
Maurice Edu gives away a free kick for an unfair challenge on Ryan McGowan. Free kick taken by Jamie MacDonald.34:50 Goal scored
Goal! - Andrew Little - Hearts 0 - 2 Rangers Andrew Little fires in a goal from close in to the top left corner of the goal. Hearts 0-2 Rangers.34:40
The ball is crossed by Lee Wallace.33:38
Corner taken by Rhys McCabe.33:11
Lee McCulloch takes a shot. Brilliant save by Jamie MacDonald.30:35
Outswinging corner taken by Ian Black, save made by Allan McGregor.30:09
Corner taken left-footed by Daniel Grainger to the near post, clearance by Maurice Edu.28:06 Goal scored
Goal! - Sone Aluko - Hearts 0 - 1 Rangers Sone Aluko grabs a goal direct from the free kick from outside the penalty box to the bottom right corner of the goal. Hearts 0-1 Rangers.26:58
Maurice Edu fouled by Andy Webster, the ref awards a free kick.26:12
Free kick awarded for an unfair challenge on Sone Aluko by Ryan McGowan. Rhys McCabe crosses the ball in from the free kick, Andy Webster makes a clearance.22:55
Unfair challenge on Andy Webster by Lee McCulloch results in a free kick. Jamie MacDonald restarts play with the free kick.21:51
Free kick awarded for an unfair challenge on Craig Beattie by Dorin Goian. Free kick crossed left-footed by Daniel Grainger.21:12
Foul by Sone Aluko on Ian Black, free kick awarded. Jamie MacDonald takes the direct free kick.17:54
Andrew Driver produces a cross.15:14
Free kick awarded for an unfair challenge on Lee McCulloch by Marius Zaliukas. Sone Aluko crosses the ball from the free kick left-footed from right channel, save made by Jamie MacDonald.14:17
Foul by Ian Black on Steven Whittaker, free kick awarded. Direct free kick taken by Kyle Bartley.13:03
Unfair challenge on Sone Aluko by Ryan McGowan results in a free kick. Rhys McCabe crosses the ball in from the free kick.12:36
Andrew Driver produces a cross.9:37
The referee blows for offside. Free kick taken by Allan McGregor.9:11
The ball is swung over by Andrew Little, Lee McCulloch takes a shot. Save by Jamie MacDonald.7:35
Effort on goal by Rudi Skacel from outside the box goes harmlessly over the bar.5:39
Free kick awarded for an unfair challenge on Kyle Bartley by Craig Beattie. Direct free kick taken by Kyle Bartley.5:16
The ball is delivered by Lee Wallace.4:22
Inswinging corner taken from the right by-line by Rhys McCabe.3:53
Andrew Little sends in a cross, Darren Barr makes a clearance.0:00
The game kicks-off.
Live data and text provided by our data suppliers