Steven Thompson's late winner ensured this all-Saints clash ended with the Buddies' first home win of the season.

Kenny McLean opened the scoring for St Mirren, but it was quickly cancelled out by Steven MacLean.

Paul McGowan and McLean twice put the Buddies ahead, with the visitors' Frazer Wright dismissed.

Nigel Hasselbaink and Rory Fallon took turns to reply, but Thompson had the final say and St Mirren go three games unbeaten.

That is seven points from nine for Danny Lennon's side and, while they remain in 10th place in the Scottish Premiership, the win was important given second-bottom Kilmarnock's victory over Ross County.

Had St Mirren captain Jim Goodwin not had a second-half penalty saved it could have been more comfortable.

For Tommy Wright's Perth charges, it is their first defeat in four matches and they lie seventh in the league as their early season inconsistency continues.

There was only the letter A of a difference between the first two goalscorers in Paisley and there was not much to separate their teams either.

Both sides looked to play neat and tidy football where possible and most of the goals were end products of intelligent play.

St Mirren's McGowan, playing in between middle and front, produced an intricate, short pass to find McLean, who duly finished in a composed manner into the bottom right corner past St Johnstone goalkeeper Alan Mannus.

St Mirren celebrate one of Kenny McLean's goals

Kenny McLean (left) scored twice for St Mirren against the visitors from Perth

But their lead was short-lived thanks to equally impressive approach play by St Johnstone.

Hasselbaink ran infield from the left and exchanged passes with Stevie May before the Dutchman's shot-come-cross was converted by the sliding MacLean for his fourth goal of the season.

On loan Newcastle midfielder Conor Newton launched more than one exciting counter-attack for the hosts, but the visitors almost took the lead before the break.

An excellent high diving save by Buddies goalkeeper Chris Dilo turned away Hasselbaink's curling effort. It was not the only time Frenchman Dilo looked assured between the sticks.

St Mirren went in front for the second time when Lee Mair's through ball allowed McGowan to side-foot softly and calmly past Mannus from 10 yards.

However, St Johnstone clawed themselves back into it again, mainly thanks to persistent running and skill from Chris Millar down the right, teeing up Hasselbaink to thump low into the net.

The pendulum looked to swing in the hosts' favour again when St Johnstone's Gary McDonald fouled McLean in the box and referee Willie Collum awarded a penalty. But Goodwin's kick was saved by Mannus.

That wasted opportunity was followed by a new one for St Mirren, though, as Wright saw red for a last-man tangle with McGowan and another spot-kick was given.

This time, McLean stepped up and converted it emphatically.

Refusing to give up, the Perth side equalised for the third time when former Aberdeen striker Fallon popped up at the back-post to tap in Stevie May's cross.

However, Thompson ensured Lennon's men had the last say, hooking in Darren McGregor's headed knock-down from a deep free-kick to seal a dramatic win.

Lineup, Bookings (5) & Substitutions (5)

St Mirren

  • 30 Dilo
  • 02 van Zanten Booked (Caprice - 68' )
  • 18 Kelly
  • 06 Goodwin Booked (Harkins - 95' )
  • 04 McGregor
  • 05 Mair
  • 24 Newton
  • 07 McGinn
  • 09 Thompson
  • 10 McGowan
  • 11 McLean

Substitutes

  • 01 Cornell
  • 08 Harkins
  • 16 Caprice
  • 17 Reilly
  • 19 Bahoken
  • 22 Naismith
  • 27 Grainger

St Johnstone

  • 01 Mannus
  • 02 Mackay
  • 24 Easton
  • 07 Millar
  • 05 Wright Dismissed after an earlier booking
  • 19 Miller
  • 10 Wotherspoon
  • 08 McDonald (Fallon - 80' )
  • 09 MacLean (Cregg - 86' Booked )
  • 17 May
  • 11 Hasselbaink (Scobbie - 77' )

Substitutes

  • 03 Scobbie
  • 04 Cregg
  • 14 Edwards
  • 15 Banks
  • 16 Caddis
  • 20 Brown
  • 27 Fallon
Ref: William Collum
Att: 3,739

Match Stats

Shots

6 12

On target

6 5

Corners

3 7

Fouls

10 12

Live Text Commentary

Full time

Full Time Match ends, St Mirren 4, St Johnstone 3.

90:00 +5:35 Full time

Full Time Second Half ends, St Mirren 4, St Johnstone 3.

90:00 +5:16

Chris Millar (St Johnstone) wins a free kick in the defensive half.

90:00 +5:16

Foul by Jake Caprice (St Mirren).

90:00 +4:11 Substitution

Substitution Substitution, St Mirren. Gary Harkins replaces James Goodwin.

90:00 +1:55 Booking

Booking James Goodwin (St Mirren) is shown the yellow card.

90:00 +1:48

Patrick Cregg (St Johnstone) wins a free kick in the defensive half.

90:00 +1:48

Foul by James Goodwin (St Mirren).

90:00 +0:16

Attempt missed. David Mackay (St Johnstone) right footed shot from outside the box is high and wide to the right.

88:11 Goal scored

Goal! Goal! St Mirren 4, St Johnstone 3. Steve Thompson (St Mirren) right footed shot from very close range to the bottom left corner. Assisted by Darren McGregor.

87:32 Booking

Booking Patrick Cregg (St Johnstone) is shown the yellow card.

87:27

Foul by Patrick Cregg (St Johnstone).

87:27

Kenny McLean (St Mirren) wins a free kick in the defensive half.

85:21 Substitution

Substitution Substitution, St Johnstone. Patrick Cregg replaces Steven MacLean.

83:34 Goal scored

Goal! Goal! St Mirren 3, St Johnstone 3. Rory Fallon (St Johnstone) right footed shot from the right side of the six yard box to the top right corner. Assisted by Steve May.

81:00

David Wotherspoon (St Johnstone) wins a free kick in the defensive half.

80:58

Foul by James Goodwin (St Mirren).

80:13

Corner, St Johnstone. Conceded by Lee Mair.

79:47 Substitution

Substitution Substitution, St Johnstone. Rory Fallon replaces Gary McDonald.

79:28

Hand ball by Paul McGowan (St Mirren).

78:35

Corner, St Johnstone. Conceded by Darren McGregor.

76:47 Substitution

Substitution Substitution, St Johnstone. Thomas Scobbie replaces Nigel Hasselbaink.

75:09 Goal scored

Goal! Goal! St Mirren 3, St Johnstone 2. Kenny McLean (St Mirren) converts the penalty with a left footed shot to the top left corner.

75:00 Dismissal

Dismissal Frazer Wright (St Johnstone) is shown the red card for a bad foul.

74:41

Penalty St Mirren. Paul McGowan draws a foul in the penalty area.

74:41

Penalty conceded by Frazer Wright (St Johnstone) after a foul in the penalty area.

73:27

Attempt missed. David Wotherspoon (St Johnstone) right footed shot from the right side of the box is too high.

69:58

Attempt saved. Paul McGowan (St Mirren) header from the centre of the box is saved in the centre of the goal.

67:20 Substitution

Substitution Substitution, St Mirren. Jake Caprice replaces David van Zanten.

67:00

Gary Miller (St Johnstone) wins a free kick in the attacking half.

66:56

Foul by Steve Thompson (St Mirren).

66:26

Attempt missed. Steve May (St Johnstone) right footed shot from outside the box is close, but misses to the left.

65:10

Penalty saved! James Goodwin (St Mirren) fails to capitalise on this great opportunity, right footed shot saved in the bottom left corner.

64:51

Penalty St Mirren. Kenny McLean draws a foul in the penalty area.

64:51

Penalty conceded by Gary McDonald (St Johnstone) after a foul in the penalty area.

64:09

Attempt saved. Steve May (St Johnstone) right footed shot from the centre of the box is saved in the centre of the goal.

60:37 Goal scored

Goal! Goal! St Mirren 2, St Johnstone 2. Nigel Hasselbaink (St Johnstone) from a free kick with a right footed shot to the bottom left corner.

60:11 Booking

Booking David van Zanten (St Mirren) is shown the yellow card.

60:05

Foul by David van Zanten (St Mirren).

60:05

Nigel Hasselbaink (St Johnstone) wins a free kick on the left wing.

59:05 Goal scored

Goal! Goal! St Mirren 2, St Johnstone 1. Paul McGowan (St Mirren) right footed shot from the centre of the box to the bottom right corner. Assisted by Lee Mair.

57:29

David van Zanten (St Mirren) wins a free kick in the attacking half.

57:29

Foul by Steve May (St Johnstone).

56:00

Chris Millar (St Johnstone) wins a free kick on the right wing.

55:58

Foul by David van Zanten (St Mirren).

51:13

John McGinn (St Mirren) wins a free kick in the defensive half.

51:13

Foul by David Wotherspoon (St Johnstone).

50:07

Corner, St Mirren. Conceded by David Mackay.

49:16

Paul McGowan (St Mirren) wins a free kick in the defensive half.

49:16

Foul by Gary McDonald (St Johnstone).

48:26

Attempt missed. David Wotherspoon (St Johnstone) header from the right side of the box is too high.

46:12

Attempt blocked. Steve May (St Johnstone) right footed shot from outside the box is blocked.

45:39

Foul by Lee Mair (St Mirren).

45:39

Steven MacLean (St Johnstone) wins a free kick in the defensive half.

45:00

Second Half begins St Mirren 1, St Johnstone 1.

45:00 +0:10 Half time

Half Time First Half ends, St Mirren 1, St Johnstone 1.

44:11 Booking

Booking Frazer Wright (St Johnstone) is shown the yellow card.

44:04

Conor Newton (St Mirren) wins a free kick in the defensive half.

44:04

Foul by Frazer Wright (St Johnstone).

40:20

Corner, St Johnstone. Conceded by Sean Kelly.

40:07

Attempt blocked. David Wotherspoon (St Johnstone) right footed shot from outside the box is blocked.

38:54

Foul by David van Zanten (St Mirren).

38:54

Nigel Hasselbaink (St Johnstone) wins a free kick in the attacking half.

37:48

Corner, St Johnstone. Conceded by James Goodwin.

37:37

Attempt blocked. Steve May (St Johnstone) right footed shot from outside the box is blocked.

35:01

Foul by Brian Easton (St Johnstone).

35:01

Paul McGowan (St Mirren) wins a free kick in the defensive half.

30:39

Corner, St Johnstone. Conceded by Christopher Dilo.

30:20

Attempt saved. Nigel Hasselbaink (St Johnstone) right footed shot from outside the box is saved in the bottom right corner.

28:16

Paul McGowan (St Mirren) wins a free kick in the attacking half.

28:16

Foul by Frazer Wright (St Johnstone).

19:05

Corner, St Mirren. Conceded by Nigel Hasselbaink.

16:08 Goal scored

Goal! Goal! St Mirren 1, St Johnstone 1. Steven MacLean (St Johnstone) right footed shot from very close range to the bottom left corner. Assisted by Nigel Hasselbaink.

13:25

Darren McGregor (St Mirren) wins a free kick in the attacking half.

13:25

Foul by Steve May (St Johnstone).

8:39

Corner, St Johnstone. Conceded by James Goodwin.

7:52 Goal scored

Goal! Goal! St Mirren 1, St Johnstone 0. Kenny McLean (St Mirren) left footed shot from the centre of the box to the bottom right corner. Assisted by Paul McGowan.

6:56

Lee Mair (St Mirren) wins a free kick in the defensive half.

6:56

Foul by Steve May (St Johnstone).

5:55

Corner, St Johnstone. Conceded by John McGinn.

4:51

Corner, St Mirren. Conceded by Frazer Wright.

3:37

Steve Thompson (St Mirren) wins a free kick in the attacking half.

3:37

Foul by Chris Millar (St Johnstone).

1:02

Foul by Steve Thompson (St Mirren).

1:02

Frazer Wright (St Johnstone) wins a free kick in the attacking half.

0:00

First Half begins.

0:00

Lineups are announced and players are warming up.

Live data and text provided by our data suppliers