Financially-troubled Hearts gave a full Tynecastle something to cheer about with victory over St Mirren.
Neither side, both playing with lone strikers, created much in the way of clear-cut chances in a scrappy game decided by a freak goal.
A Danny Grainger free-kick deflected off the boot of St Mirren's Kenny McLean to beat Craig Samson.
The visitors couldn't find a way back into the match and slumped to a sixth straight league defeat.
The Tynecastle club, who had been issued a winding-up order over a £450,000 tax bill a few weeks ago, had a issued a rallying call to supporters to turn up in numbers at home matches.
And the call had clearly been answered by the fans, with a crowd of 16443 inside the stadium.
The home players were obviously inspired and, after some early pressure, Callum Paterson got a glancing header on a Grainger free-kick, but his effort was deflected wide.
The home side continued to dominate possession as the first half wore on, but, with only one player up front, were struggling to create chances, although Darren Barr flashed a right-footed effort wide from the edge of the box.
A flowing passing move starting at right-back led to Ryan Stevenson being teed up just inside the St Mirren D, but he dragged his shot wide of the mark.
At the other end Steven Thompson was set up by a low ball from fellow former Scotland international Gary Teale, but his shot was blazed well over.
The second half began in even more cagey a fashion that the first.
Hearts contined to dominate possession, with St Mirren happy to sit deep, but a lack of cutting edge continued to frustrate them in any attacking sense.
And then, out of nothing, the home side found themselves ahead courtesy of a freak goal after Jim Goodwin, just returned from suspension, felled Andy Webster 25 yards from goal.
Grainger took the free-kick, which spun off the boot of the onrushing McLean and looped beyond the helpless Samson into the net.
St Mirren gave some response to going a goal down after changing to a 4-4-2 formation, with a Marc McAusland header forcing Jason Holt into clearing off the line at the back post.
Kenny McLean also went close with a left-footed low drive from the edge of the box after Thompson robbed Andy Webster some 30 yards from the Hearts goal.
Andy Driver should have killed the game, when a Hearts counter-attack left him one-on-one with Samson, but he could only drag a right-footed shot wide.
The result, coupled with Dundee's victory over Hibernian, leaves St Mirren only a point off bottom spot.
Hearts move up to seventh in the table, but the Tynecastle board may be more happy with the packed stadium.
Live Text Commentary
Full Time The final whistle is blown by the referee.90:00 +3:26
Unfair challenge on Marius Zaliukas by Sam Parkin results in a free kick. Jamie MacDonald restarts play with the free kick.90:00 +1:54
Arvydas Novikovas concedes a free kick for a foul on Dougie Imrie. Jim Goodwin delivers the ball from the free kick right-footed from right channel, Daniel Grainger makes a clearance.90:00 +0:36
The offside flag is raised against Dougie Imrie. Jamie MacDonald takes the indirect free kick.87:38
Foul by Mehdi Taouil on Dougie Imrie, free kick awarded. Direct free kick taken by Jim Goodwin.86:13
Andrew Driver has an effort at goal from close in which goes wide right of the goal.85:20
Inswinging corner taken right-footed by Gary Teale, save made by Jamie MacDonald.84:22
Free kick taken by Craig Samson.84:22 Substitution
Substitution Mehdi Taouil replaces Jason Holt.84:22
Ryan Stevenson gives away a free kick for an unfair challenge on Paul Dummett.83:35
Foul by Sam Parkin on Daniel Grainger, free kick awarded. Marius Zaliukas restarts play with the free kick.82:39
Shot from outside the area by Kenny McLean misses to the left of the goal.79:38
Ryan McGowan concedes a free kick for a foul on Dougie Imrie. Gary Teale crosses the ball from the free kick right-footed from left by-line.78:11
Inswinging corner taken by Gary Teale from the left by-line, Marc McAusland takes a shot. Andy Webster manages to make a clearance.77:14
Andrew Driver has an effort at goal from outside the area missing to the wide left of the goal.74:55 Substitution
Substitution Andrew Driver joins the action as a substitute, replacing Jamie Walker.73:23
Foul by Andy Webster on Steven Thompson, free kick awarded. Kenny McLean fires a strike on goal direct from the free kick, save by Craig Samson.72:59 Substitution
Substitution Jon Robertson on for Lee Mair.72:36
Shot on goal by Kenny McLean from just inside the area goes over the target.71:31
Corner taken left-footed by Daniel Grainger from the left by-line, Ryan McGowan has an effort at goal from close range which goes wide right of the target.
Substitution Dougie Imrie replaces Graham Carey.69:43 Substitution
Substitution Sam Parkin comes on in place of Thomas Reilly.68:56
Daniel Grainger concedes a free kick for a foul on Jim Goodwin. Free kick taken by Craig Samson.67:18
The offside flag is raised against Steven Thompson. Free kick taken by Andy Webster.65:29
Graham Carey concedes a free kick for a foul on Ryan McGowan. Andy Webster takes the free kick.65:01
Free kick awarded for a foul by Gary Teale on Arvydas Novikovas. Free kick taken by Arvydas Novikovas.63:02
The assist for the goal came from Arvydas Novikovas.63:02 Goal scored
Goal! - Daniel Grainger - Hearts 1 - 0 St Mirren Daniel Grainger grabs a goal from outside the penalty area to the top left corner of the goal. Hearts 1-0 St Mirren.61:57
Foul by Jim Goodwin on Andy Webster, free kick awarded. Free kick taken by Arvydas Novikovas.61:26 Substitution
Substitution Arvydas Novikovas joins the action as a substitute, replacing Callum Paterson.61:00
Outswinging corner taken left-footed by Callum Paterson from the left by-line.60:41
Corner from the left by-line taken by Daniel Grainger, clearance made by Paul Dummett.59:52
Corner taken by Daniel Grainger.59:31
Darren Barr takes a shot. Blocked by Paul Dummett.53:57
Free kick awarded for an unfair challenge on Thomas Reilly by Dylan McGowan. Marc McAusland takes the direct free kick.53:19
Callum Paterson concedes a free kick for a foul on Craig Samson. Craig Samson takes the direct free kick.50:11
Free kick awarded for an unfair challenge on Andy Webster by Steven Thompson. Marius Zaliukas restarts play with the free kick.47:12
Direct free kick taken by Daniel Grainger.47:12 Booking
Booking Marc McAusland is given a yellow card.46:36
Unfair challenge on Marius Zaliukas by Thomas Reilly results in a free kick.45:01
The referee blows his whistle to start the second half.45:00 +0:06 Half time
Half Time The match has reached half-time.42:19
Steven Thompson concedes a free kick for a foul on Callum Paterson. Daniel Grainger restarts play with the free kick.41:52
Foul by Jason Holt on Graham Carey, free kick awarded. Direct free kick taken by Craig Samson.41:32
Steven Thompson challenges Marius Zaliukas unfairly and gives away a free kick. Free kick taken by Marius Zaliukas.41:01
The referee blows for offside against Ryan Stevenson. Indirect free kick taken by Craig Samson.37:33
Jim Goodwin concedes a free kick for a foul on Jason Holt. Jason Holt takes the direct free kick.36:51
Marius Zaliukas takes a shot from deep inside the box clearing the bar.35:22
David van Zanten concedes a free kick for a foul on Jamie Walker. Daniel Grainger restarts play with the free kick.32:40
Steven Thompson takes a shot from inside the box clearing the bar.30:51
Ryan Stevenson has shot on goal from just outside the penalty box which goes wide of the right-hand upright.26:56
Corner taken left-footed by Daniel Grainger from the right by-line, free kick awarded for a foul by Andy Webster on Steven Thompson. Free kick taken by Craig Samson.25:58
Shot from outside the box by Darren Barr misses to the left of the target.24:09
Free kick awarded for a foul by Darren Barr on Kenny McLean. Free kick taken by Lee Mair.21:38
Free kick awarded for an unfair challenge on Thomas Reilly by Jason Holt. Direct free kick taken by Craig Samson.20:58
Corner taken by Daniel Grainger, clearance made by Paul Dummett.19:28
Corner taken left-footed by Daniel Grainger from the right by-line to the near post, clearance by Gary Teale.19:04
Free kick taken by Daniel Grainger.19:04 Booking
Booking Graham Carey goes into the book for unsporting behaviour.18:43
Unfair challenge on Callum Paterson by Graham Carey results in a free kick.18:01
Steven Thompson takes a shot. Save made by Jamie MacDonald.16:21
Ryan Stevenson challenges David van Zanten unfairly and gives away a free kick. Direct free kick taken by Marc McAusland.15:44
Free kick awarded for an unfair challenge on Steven Thompson by Marius Zaliukas. Direct free kick taken by Marc McAusland.14:25
Callum Paterson concedes a free kick for a foul on Kenny McLean. Paul Dummett restarts play with the free kick.10:17
Free kick awarded for a foul by Thomas Reilly on Dylan McGowan. Andy Webster takes the free kick.9:40
Jamie Walker gives away a free kick for an unfair challenge on David van Zanten. Craig Samson takes the direct free kick.8:11
Inswinging corner taken from the left by-line by Daniel Grainger, save by Craig Samson.6:58
Jim Goodwin challenges Jason Holt unfairly and gives away a free kick. The ball is swung over by Daniel Grainger, Callum Paterson takes a shot. Clearance made by Paul Dummett.4:09
Outswinging corner taken by Daniel Grainger from the left by-line, clearance by Steven Thompson.3:08
Corner taken by Ryan McGowan.0:00
The referee gets the game started.
Live data and text provided by our data suppliers