Hearts secured their place the Scottish Premier League's top six with a comfortable win over Aberdeen at a sun-kissed Tynecastle.
A lacklustre first half was only interrupted by Ryan McGowan's close-range header to put the home side ahead.
McGowan turned provider for Rudi Skacel's 25-yard stunner to put Hearts 2-0 in front on 53 minutes.
Skacel rolled the ball home late on to double his tally and seal victory.
Both sides struggled to hit their stride in the opening stages of this match in the capital.
It took 11 minutes for the first attempt to arrive and it came from Hearts' Ian Black, the midfielder cutting in from the left to make space and shooting wide across goal.
Darren Mackie headed over a Chris Clark cross five minutes later for Aberdeen and Kari Arnason, who was on trial in Gorgie last summer, shot tamely wide from 25 yards after 17 minutes.
There had been precious little goalmouth action, but the home side took the lead from the first corner of the match.
Danny Grainger delivered the ball to the far post and McGowan peeled off his marker to head home from close range.
The lacklustre proceedings continued until half-time and into the second half before McGowan provided Skacel, who let rip with a left-foot effort from long range to double Hearts' advantage.
Craig Brown's Aberdeen last scored twice in the SPL on 2 January and they appeared more likely to concede than hit the target.
Hearts boss Paulo Sergio felt comfortable enough to replace midfielder Black 22 minutes from time. The key midfielder has been nursing a hernia and was replaced with Suso.
Scott Vernon was unable to get any purchase on a header from a free-kick wide on the right as the Dons' struggles in front of goal continued.
Russell Anderson replaced Clark Robertson for his first appearance since his return to the club before the Pittodrie side squandered their best chance of the match.
Stephen Hughes lifted a free kick into the penalty area 30 yards from goal, Vernon killed the ball with his first touch and then scooped the ball over the bar.
A goal could have set up a grandstand finish, but Skacel made sure of victory when he controlled Darren Barr's pass and tucked the ball past Jason Brown.
Heart of Midlothian
- 30 MacDonald
- 03 Grainger
- 05 Barr
- 06 Webster
- 17 McGowan
- 26 Zaliukas Booked
- 02 Hamill (Prychynenko - 90' )
- 08 Black (Santana - 67' )
- 11 Driver
- 19 Skacel
- 04 Beattie (Glen - 84' )
- 28 Ridgers
- 07 Santana
- 35 Prychynenko
- 42 Holt
- 18 Novikovas
- 23 Glen
- 27 Robinson
- 32 Brown
- 02 McArdle
- 03 Reynolds
- 06 Considine
- 13 Robertson (Anderson - 76' )
- 07 Clark
- 11 Arnason Booked (Hughes - 80' )
- 15 Pawlett Booked (Megginson - 61' )
- 28 Rae
- 09 Vernon
- 10 Mackie
- 01 Langfield
- 27 Anderson
- 20 Hughes
- 18 Chalali
- 21 Magennis
- 23 Megginson
- 34 Uchechi
Live Text Commentary
Full Time The match has reached full-time.90:00 +1:15
The ball is sent over by Andrew Driver, clearance made by Rory McArdle. Outswinging corner taken from the left by-line by Daniel Grainger, Rory McArdle makes a clearance.89:49
Inswinging corner taken right-footed by Mitchel Megginson, Ryan McGowan makes a clearance.89:21 Substitution
Substitution Jamie Hamill goes off and Denis Prychynenko comes on.88:05
Assist by Darren Barr.88:05 Goal scored
Goal! - Rudi Skacel - Hearts 3 - 0 Aberdeen Rudi Skacel scores a goal from inside the penalty area to the bottom right corner of the goal. Hearts 3-0 Aberdeen.86:16
Unfair challenge on Gavin Rae by Gary Glen results in a free kick. Free kick taken by Stephen Hughes. Close range shot by Scott Vernon goes over the bar.83:13 Substitution
Substitution Craig Beattie goes off and Gary Glen comes on.82:29
Outswinging corner taken by Stephen Hughes, Craig Beattie makes a clearance.79:31
Direct free kick taken by Jamie MacDonald.79:31 Substitution
Substitution Kari Arnason leaves the field to be replaced by Stephen Hughes.79:31
Andy Webster fouled by Scott Vernon, the ref awards a free kick.77:59
Effort on goal by Darren Mackie from outside the box goes harmlessly over the bar.75:01
Free kick taken by Jamie Hamill.75:01 Substitution
Substitution Clark Robertson leaves the field to be replaced by Russell Anderson.75:01
The referee blows for offside.73:53
Free kick awarded for a foul by Jamie Hamill on Mitchel Megginson. Direct free kick taken by Clark Robertson.72:06
A cross is delivered by Daniel Grainger, Kari Arnason manages to make a clearance.68:03
Direct free kick taken by Rory McArdle.68:03 Booking
Booking Marius Zaliukas goes into the book for unsporting behaviour.
Marius Zaliukas challenges Darren Mackie unfairly and gives away a free kick.66:40 Substitution
Substitution Ian Black goes off and Suso Santana comes on.64:00
Andrew Driver takes a shot. Save by Jason Brown.63:14
A cross is delivered by Ian Black, clearance by Andrew Considine.61:32
The referee blows for offside against Andrew Driver. Andrew Considine restarts play with the free kick.60:29 Substitution
Substitution Peter Pawlett goes off and Mitchel Megginson comes on.56:19
Darren Barr fouled by Chris Clark, the ref awards a free kick. Jamie MacDonald restarts play with the free kick.55:52
Free kick awarded for an unfair challenge on Rory McArdle by Jamie Hamill. Jason Brown restarts play with the free kick.52:37
The assist for the goal came from Ryan McGowan.52:37 Goal scored
Goal! - Rudi Skacel - Hearts 2 - 0 Aberdeen Rudi Skacel scores a goal from long range to the top right corner of the goal. Hearts 2-0 Aberdeen.51:06
The ball is delivered by Clark Robertson, clearance by Marius Zaliukas.50:06
Ian Black fouled by Scott Vernon, the ref awards a free kick. Direct free kick taken by Ian Black.49:17
Craig Beattie is flagged offside by the assistant referee. Jason Brown restarts play with the free kick.47:18
Andrew Driver sends in a cross.45:50
Daniel Grainger fouled by Kari Arnason, the ref awards a free kick. Jamie MacDonald takes the direct free kick.45:44
Rory McArdle crosses the ball, clearance by Daniel Grainger.45:01
The referee gets the second half underway.45:00 +0:06 Half time
Half Time It is the end of the first-half.42:24
Ryan McGowan produces a cross, Craig Beattie has an effort at goal from just inside the box that misses to the left of the target.40:46
Ian Black takes a inswinging corner from the left by-line to the near post, clearance by Andrew Considine.39:20 Booking
Booking Kari Arnason goes into the referee's book for unsporting behaviour.38:13
Kari Arnason gives away a free kick for an unfair challenge on Rudi Skacel. Daniel Grainger takes the free kick. Foul by Marius Zaliukas on Andrew Considine, free kick awarded. Direct free kick taken by Jason Brown.37:00
Inswinging corner taken by Peter Pawlett from the left by-line, Daniel Grainger makes a clearance. Inswinging corner taken right-footed by Peter Pawlett from the left by-line to the near post, Andrew Considine takes the chance to get an effort at goal.34:56
Peter Pawlett delivers the ball, Shot from just outside the box by Gavin Rae goes over the bar.34:27
The ball is sent over by Clark Robertson, clearance made by Marius Zaliukas. Corner taken by Peter Pawlett from the right by-line, clearance by Darren Barr.31:45
The official flags Darren Mackie offside. Jamie MacDonald takes the free kick.29:46
Free kick crossed by Ian Black.29:46 Booking
Booking Peter Pawlett booked.29:39
Peter Pawlett challenges Ian Black unfairly and gives away a free kick.29:00
Chris Clark challenges Darren Barr unfairly and gives away a free kick. Andy Webster takes the free kick.27:51
Unfair challenge on Daniel Grainger by Peter Pawlett results in a free kick. Daniel Grainger takes the direct free kick.26:07
Daniel Grainger provided the assist for the goal.26:07 Goal scored
Goal! - Ryan McGowan - Hearts 1 - 0 Aberdeen Ryan McGowan grabs a headed goal from close in. Hearts 1-0 Aberdeen.25:38
Darren Barr produces a cross, clearance by Rory McArdle. Inswinging corner taken left-footed by Daniel Grainger,22:39
Unfair challenge on Rory McArdle by Andrew Driver results in a free kick. Jason Brown restarts play with the free kick.22:23
A cross is delivered by Andrew Driver, Mark Reynolds manages to make a clearance.20:57
Scott Vernon is caught offside. Andy Webster restarts play with the free kick.20:41
Unfair challenge on Peter Pawlett by Andrew Driver results in a free kick. Free kick taken by Rory McArdle.18:44
Unfair challenge on Ryan McGowan by Clark Robertson results in a free kick. Direct free kick taken by Daniel Grainger.17:13
Free kick awarded for an unfair challenge on Craig Beattie by Mark Reynolds. Ian Black restarts play with the free kick.16:15
Kari Arnason produces a left-footed shot from just outside the area that goes wide left of the goal.13:46
Header from deep inside the area by Darren Mackie goes harmlessly over the crossbar.12:21
Ian Black challenges Kari Arnason unfairly and gives away a free kick. Free kick taken by Mark Reynolds.10:56
Scott Vernon gives away a free kick for an unfair challenge on Andy Webster. Andy Webster restarts play with the free kick.10:23
Ian Black has an effort at goal from outside the penalty box which goes wide right of the target.9:07
Rory McArdle produces a cross.8:12
The official flags Rudi Skacel offside. Jason Brown restarts play with the free kick.4:51
Free kick awarded for a foul by Rory McArdle on Andrew Driver. Direct free kick taken by Ian Black.3:41
The ball is crossed by Craig Beattie, clearance by Andrew Considine.0:33
Free kick awarded for a foul by Rory McArdle on Andrew Driver. Free kick taken by Daniel Grainger.0:24
Chris Clark concedes a free kick for a foul on Daniel Grainger. Free kick taken by Daniel Grainger.0:00
The referee gets the game started.
Live data and text provided by our data suppliers