Ryan Stevenson's late strike ensured a Hearts victory over St Johnstone at McDiarmid Park.
Collin Samuel squandered a chance for the home side before the break.
But Hearts broke the deadlock after 64 minutes, with Kevin Kyle firing home after a David Templeton free-kick struck a hand inside the box.
Stevenson made sure of the points when he latched on to a fine through ball from Calum Elliot to score despite hints of offside.
Victory lifts Hearts into third spot in the Scottish Premier League, with the Perth side's continued slump leaving them third from bottom.
Jamie Adams had returned from his loan at Dundee to replace injured defender Dave Mackay as St Johnstone looked to end a run of three straight league defeats for the loss of 10 goals.
Hearts were unchanged after their midweek win over Celtic, although Suso was missing from the bench after the winger was forced to undergo knee surgery.
Kyle required early touchline treatment on a cut nose after an apparent collision with Michael Duberry, but the Hearts forward was able to continue after a short delay.
The Scotland squad striker did force the first save of the contest but was unable to put enough power onto his headed effort from Ian Black's cross to trouble goalkeeper Peter Enckelman.
Hearts substitute Stevenson settled the game in injury time
St Johnstone forward Samuel claimed a foul against Adrian Mrowiec as he tried to reach a ball over the top.
But, despite the Hearts defender seemingly pulling him back and denying a potential goalscoring opportunity, nothing was given by referee Mike Tumilty.
Samuel had nobody to blame but himself moments later as he swung wildly at a shooting chance set up by Duberry's muscular play inside the area and fired the ball badly wide.
Hearts were the more enterprising side early on and Stephen Elliott should have done better with an angled drive blazed over the crossbar with an unmarked Kyle wanting for a pass in the middle.
St Johnstone were presented with a real chance in the 28th minute when Duberry's ball was only half-cleared by Ruben Palazuelos with goalkeeper Marian Kello drawn out of position behind him, but Liam Craig volleyed wide of the empty net.
Eggert Jonsson's fine run and cross set up midfielder Rudi Skacel in the 43rd minute, but his low effort was well held by Enckelman to preserve the deadlock.
St Johnstone made a change at the break, Peter MacDonald on for Craig, and he headed wide a Cleveland Taylor cross.
Hearts were then awarded a 64th-minute penalty for handball, seemingly against Adams, from a Templeton free-kick and went ahead via Kyle's emphatic finish.
Hearts almost doubled their lead in the 68th minute when Skacel set up Elliott for a fierce strike which was pushed wide by Enckelman.
Saints introduced Sam Parkin for Samuel and he was soon involved, forcing a fine save from Kello after MacDonald's pass.
The home side kept battling to rescue at least a point, but it was Hearts who came closest late on with a Kyle header wide.
Then, in the final minute of stoppage time, Elliott's searching pass found substitute Stevenson, who finished well with a low drive.
Live text and stats
Saturday, 13 November 2010
Kyle (pen) 64
06 Duberry yellow card
19 Maybury yellow card
04 Morris yellow card
10 Craig (MacDonald 46)
24 Adams (May 83)
21 Samuel (Parkin 72)
21 Ismael Bouzid
26 Zaliukas yellow card
08 Black yellow card
12 Templeton (Thomson 90)
19 Skacel (Stevenson 80)
10 Elliott (Elliot 85)
Ref: TumiltyAtt: 4,156
Attempts on target
Attempts off target
90:00+4:57 The game is over, as the referee blows his whistle.
90:00+3:58 Assist on the goal came from Calum Elliot.
90:00+3:58 GOAL - Ryan Stevenson:St Johnstone 0 - 2 Hearts Ryan Stevenson grabs a goal from the edge of the area low into the middle of the goal. St Johnstone 0-2 Hearts.
90:00+2:16 Cleveland Taylor sends in a cross, Marian Kello makes a save.
90:00+1:36 The ball is crossed by Craig Thomson, Ryan Stevenson takes a shot. Save made by Peter Enckelman.
90:00+0:33 Craig Thomson challenges Steven Anderson unfairly and gives away a free kick. Peter Enckelman takes the free kick.
89:17 Substitution Craig Thomson is brought on as a substitute for David Templeton.
88:58 Booking Michael Duberry shown a yellow card.
87:41 Corner taken right-footed by Ryan Stevenson, Kevin Kyle has a headed effort at goal from deep inside the area missing to the
left of the target.
87:01 The ball is sent over by Daniel Grainger, save by Marian Kello.
84:27 Substitution Stephen Elliott leaves the field to be replaced by Calum Elliot.
83:20 David Templeton crosses the ball, save made by Peter Enckelman.
82:40 Substitution Steve May is brought on as a substitute for Jamie Adams.
82:25 Centre by Cleveland Taylor.
80:25 Daniel Grainger delivers the ball.
78:42 Peter Enckelman takes the indirect free kick.
78:42 Substitution Ryan Stevenson comes on in place of Rudolf Skacel.
78:42 Free kick awarded for a foul by Jody Morris on David Templeton. Rudolf Skacel crosses the ball in from the free kick, Kevin
Kyle concedes a free kick for a foul on Michael Duberry.
76:55 Strike comes in from Daniel Grainger from the free kick.
76:55 Booking Marius Zaliukas booked.
76:48 Free kick awarded for an unfair challenge on Murray Davidson by Marius Zaliukas.
76:18 Unfair challenge on Alan Maybury by Stephen Elliott results in a free kick. Michael Duberry restarts play with the free kick.
74:38 Shot from outside the box by Daniel Grainger goes wide right of the target.
74:00 Corner taken by Daniel Grainger played to the near post, Ismael Bouzid manages to make a clearance.
73:43 The ball is sent over by Peter MacDonald, Sam Parkin takes a shot. Marian Kello makes a save.
73:14 Stephen Elliott takes a shot. Save by Peter Enckelman.
71:25 Substitution Sam Parkin on for Collin Samuel.
69:57 Murray Davidson concedes a free kick for a foul on Eggert Jonsson. Rudolf Skacel delivers the ball from the free kick left-footed
from right wing, clearance by Michael Duberry.
65:57 A cross is delivered by Kevin Kyle, save by Peter Enckelman.
63:33 GOAL - Kevin Kyle:St Johnstone 0 - 1 Hearts Power penalty scored by Kevin Kyle. St Johnstone 0-1 Hearts.
62:51 Jamie Adams is penalised for handball and concedes a .
61:34 David Templeton shoots direct from the free kick.
61:34 Booking Caution for Alan Maybury.
61:19 Unfair challenge on David Templeton by Alan Maybury results in a free kick.
60:55 The ball is sent over by Ruben Palazuelos, save by Peter Enckelman.
58:19 A cross is delivered by Jody Morris, Marian Kello makes a save.
57:28 Daniel Grainger takes the free kick.
57:28 Booking Booking for Ian Black.
57:22 Unfair challenge on Murray Davidson by Ian Black results in a free kick.
56:25 Marius Zaliukas takes the free kick.
56:25 Booking Jody Morris receives a yellow card for dissent.
56:18 Foul by Jamie Adams on Ian Black, free kick awarded.
55:43 Rudolf Skacel delivers the ball, save by Peter Enckelman.
53:45 Unfair challenge on Jody Morris by Ian Black results in a free kick. Daniel Grainger crosses the ball in from the free kick,
Kevin Kyle manages to make a clearance.
53:12 Rudolf Skacel has an effort at goal from outside the area which misses left.
51:56 The ball is crossed by Cleveland Taylor, Ian Black manages to make a clearance.
51:01 Ismael Bouzid challenges Collin Samuel unfairly and gives away a free kick. Free kick crossed left-footed by Daniel Grainger,
Ian Black makes a clearance.
49:57 Corner taken by Rudolf Skacel, save by Peter Enckelman.
49:49 Stephen Elliott produces a cross, Jamie Adams manages to make a clearance.
47:13 Alan Maybury gives away a free kick for an unfair challenge on Ian Black. Marius Zaliukas takes the direct free kick.
45:58 Centre by Cleveland Taylor, Header from deep inside the area by Peter MacDonald goes over the bar.
45:01 The referee blows his whistle to start the second half.
45:01 Substitution Peter MacDonald joins the action as a substitute, replacing Liam Craig.
45:00+1:21 The whistle is blown to end the first half.
45:00+0:41 Daniel Grainger takes the inswinging corner, save by Marian Kello.
45:00+0:32 The ball is delivered by Cleveland Taylor, clearance by Marius Zaliukas.
44:34 Outswinging corner taken left-footed by Rudolf Skacel, Eggert Jonsson has an effort at goal from outside the box which goes
wide right of the target.
44:17 Kevin Kyle takes a shot. Blocked by Michael Duberry.
43:52 Liam Craig has an effort at goal from outside the penalty area missing to the wide left of the goal.
43:09 The ball is crossed by Eggert Jonsson, Rudolf Skacel takes a shot. Save by Peter Enckelman.
42:52 Alan Maybury produces a cross, clearance by Marius Zaliukas.
40:42 Steven Anderson concedes a free kick for a foul on Ian Black. Marius Zaliukas produces a cross, Kevin Kyle takes a shot. Peter
Enckelman makes a comfortable save.
38:56 Daniel Grainger fouled by David Templeton, the ref awards a free kick. Direct free kick taken by Peter Enckelman.
37:20 Unfair challenge on Murray Davidson by Kevin Kyle results in a free kick. Free kick taken by Michael Duberry.
36:50 Liam Craig produces a left-footed shot from long range that goes harmlessly over the bar.
36:36 Cleveland Taylor sends in a cross.
36:03 The ball is swung over by Ruben Palazuelos, clearance by Michael Duberry.
33:58 Corner taken left-footed by Rudolf Skacel from the left by-line, Header by Kevin Kyle from deep inside the penalty area misses
to the right of the target.
33:42 David Templeton takes a shot. Blocked by Alan Maybury.
32:34 Steven Anderson sends in a cross.
31:34 Free kick awarded for a foul by Ian Black on Collin Samuel. Daniel Grainger delivers the ball from the free kick left-footed
from right wing, Marius Zaliukas manages to make a clearance.
30:29 Free kick awarded for an unfair challenge on Cleveland Taylor by Ruben Palazuelos. Free kick crossed by Daniel Grainger, Kevin
Kyle manages to make a clearance.
30:12 The ball is sent over by Cleveland Taylor, Marius Zaliukas makes a clearance.
29:34 The ball is crossed by Liam Craig, blocked by Marius Zaliukas.
27:41 Kevin Kyle gives away a free kick for an unfair challenge on Steven Anderson. Daniel Grainger takes the direct free kick.
26:26 Liam Craig has an effort at goal from outside the area which misses left.
24:20 Centre by Ruben Palazuelos, save made by Peter Enckelman.
23:12 Unfair challenge on Stephen Elliott by Steven Anderson results in a free kick. Rudolf Skacel delivers the ball from the free
kick left-footed from right channel, blocked by Cleveland Taylor.
22:44 The assistant referee flags for offside against Collin Samuel. Ismael Bouzid takes the indirect free kick.
20:03 Effort on goal by Stephen Elliott from inside the area goes harmlessly over the bar.
18:40 Steven Anderson concedes a free kick for a foul on Ian Black. The free kick is delivered left-footed by Rudolf Skacel from
right wing, Unfair challenge on Michael Duberry by Kevin Kyle results in a free kick. Peter Enckelman takes the direct free
17:29 Free kick awarded for an unfair challenge on Jody Morris by Ian Black. Free kick taken by Michael Duberry.
16:15 Free kick awarded for a foul by Ian Black on Murray Davidson. Daniel Grainger takes the direct free kick.
15:40 Shot from deep inside the area by Collin Samuel clears the crossbar.
12:54 Daniel Grainger concedes a free kick for a foul on David Templeton. Free kick crossed by Rudolf Skacel, clearance made by
10:33 Eggert Jonsson sends in a cross, clearance made by Alan Maybury.
8:28 The ball is delivered by Ian Black, Kevin Kyle takes a shot. Save made by Peter Enckelman.
2:05 Collin Samuel is caught offside. Marian Kello takes the free kick.
0:00 The game kicks-off.
Live text and data provided by The Press Association.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.