Wesolowski fired in the only goal of the game at New Douglas Park
Hamilton Accies took another good step towards Scottish Premier League safety with a win that dented St Johnstone's hopes of a top-six finish.
Both sides wasted early opportunities, Accies' Mickael Antoine-Curier guilty of missing from only two yards out.
Hamilton had the better of the first half and James Wesolowski handed them the lead with a powerful drive.
The home side continued to dominate in a scrappy second half, but could not find a way to increase their lead.
Billy Reid's side have now gone six games unbeaten and looked assured of a third straight Scottish Premier League season, now they are 11 points clear of bottom side Falkirk.
The visitors had been hoping to close the gap on sixth-placed Hearts and went close to a fourth-minute opener when Filipe Morais' knockdown from Danny Grainger's free-kick was deflected just past the post.
Five minutes later, Jody Morris stung the palms of Tomas Cerny from 20 yards but Hamilton immediately broke down the right, Antoine-Curier heading Dougie Imrie's far-post cross wide under pressure.
Accies' Simon Mensing blasted a 28th-minute free-kick straight at the wall and, as the ball was sent back into the box, Antoine-Curier wasted a great chance, failing to connect as it found its way through to the big striker.
The first half looked destined to end goalless until two minutes from the break when Mensing fed Wesolowski on the edge of the box and the Australian was given enough time by a static Saints defence to fire the ball into the corner of the net.
The second half was preceded by a stadium announcement asking Kenny Deuchar's father - who like his son is a doctor - to report to the tunnel.
The striker did not emerge with his Saints team-mates because of concussion and was one of two half-time substitutions, with Collin Samuel and Steven Anderson coming on.
The changes reinvigorated the visitors but they were unable to seriously test Cerny until just past the hour mark when Hamilton failed to deal with Gary Mackay's long ball and Liam Craig saw his shot turned behind.
Anderson then headed Morais' wicked corner wide before Hamilton striker Flavio Paixao was denied by a wonderful save from Graeme Smith, who somehow clawed the Portuguese's header from Mensing's cross over the bar.
Paixao then produced a moment of outrageous skill that should have earned Hamilton a penalty.
The forward turned and flicked the ball over Anderson's head in one motion before being hauled back by the defender but, incredibly, referee Crawford Allan waved play on.
A clever free-kick routine from the home side ended with Joel Thomas volleying acrobatically over the crossbar.
As Saints pushed forward, they found themselves being caught on the break and James McArthur went close with a 30-yard piledriver but there was to be no more scoring.
90:00+2:46 The referee brings the game to a close.
Full Time
90:00+1:30 Booking Liam Craig (St Johnstone) booked for unsporting behaviour.
90:00+1:27 Free kick taken right-footed by James McArthur (Hamilton) from right wing, passed.
90:00+1:27 Booking Daniel Grainger (St Johnstone) booked for unsporting behaviour.
90:00+1:05 Foul by Liam Craig (St Johnstone) on Alex Neil (Hamilton).
90:00+0:39 Free kick taken right-footed by Simon Mensing (Hamilton) from right wing, passed.
90:00+0:39 Booking Jody Morris (St Johnstone) booked for unsporting behaviour.
90:00+0:12 Foul by Jody Morris (St Johnstone) on Marco Paixao (Hamilton).
88:49 Goal kick taken long by Graeme Smith (St Johnstone).
87:39 Substitution Hamilton substitution: Douglas Imrie replaced by Marco Paixao (tactical).
87:24 Attacking throw-in by Douglas Imrie (Hamilton).
86:53 Foul by Liam Craig (St Johnstone) on Douglas Imrie (Hamilton). Free kick taken right-footed by Simon Mensing (Hamilton) from right wing, passed.
85:15 Joel Thomas (Hamilton) caught offside. Free kick taken right-footed by Michael Duberry (St Johnstone) from right channel, resulting in open play.
84:46 Goal kick taken long by Graeme Smith (St Johnstone).
84:24 Shot by James McArthur (Hamilton) right-footed from left channel (30 yards), missed right.
83:50 Attacking throw-in by Brian Easton (Hamilton).
83:21 Defending throw-in by David MacKay (St Johnstone).
82:42 Foul by Joel Thomas (Hamilton) on Daniel Grainger (St Johnstone). Free kick taken right-footed by Graeme Smith (St Johnstone) from left channel, resulting in open play.
81:35 Goal kick taken long by Tomas Cerny (Hamilton).
81:07 Attacking throw-in by David MacKay (St Johnstone).
80:57 Attacking throw-in by David MacKay (St Johnstone).
80:09 Attacking throw-in by Chris Millar (St Johnstone).
78:26 Substitution St Johnstone substitution: Murray Davidson replaced by Cillian Sheridan (tactical).
78:15 Defending throw-in by David MacKay (St Johnstone).
77:58 Goal kick taken long by Graeme Smith (St Johnstone).
76:39 Foul by Liam Craig (St Johnstone) on James Wesolowski (Hamilton). Free kick taken right-footed by Alex Neil (Hamilton) from right channel, header by Joel Thomas (Hamilton) from centre of penalty area (12 yards), over the bar.
74:49 Cross by Flavio Paixao (Hamilton), clearance by Michael Duberry (St Johnstone).
74:25 Attacking throw-in by Daniel Grainger (St Johnstone).
73:45 Attacking throw-in by Brian Easton (Hamilton).
73:31 Attacking throw-in by Brian Easton (Hamilton).
72:48 Goal kick taken long by Graeme Smith (St Johnstone).
72:14 Attacking throw-in by Brian Easton (Hamilton).
72:00 Cross by Liam Craig (St Johnstone), clearance by Martin Canning (Hamilton).
70:31 Defending throw-in by Martin Canning (Hamilton).
68:27 Inswinging corner from right by-line taken right-footed by Brian Easton (Hamilton) to far post, resulting in ball out of play. Goal kick taken long by Graeme Smith (St Johnstone).
67:46 Cross by Simon Mensing (Hamilton), header by Flavio Paixao (Hamilton) from right side of penalty area (6 yards), over the bar.
67:29 Attacking throw-in by Simon Mensing (Hamilton).
66:47 Attacking throw-in by Simon Mensing (Hamilton).
65:57 Foul by James Wesolowski (Hamilton) on Filipe Morais (St Johnstone). Free kick crossed left-footed by Filipe Morais (St Johnstone) from left channel, save (caught) by Tomas Cerny (Hamilton).
65:50 Attacking throw-in by Daniel Grainger (St Johnstone).
65:03 Goal kick taken long by Graeme Smith (St Johnstone).
65:03 Substitution Hamilton substitution: Mickael Antoine-Curier replaced by Joel Thomas (tactical).
64:23 Attacking throw-in by Simon Mensing (Hamilton).
64:03 Cross by Filipe Morais (St Johnstone), save (caught) by Tomas Cerny (Hamilton).
63:50 Attacking throw-in by David MacKay (St Johnstone).
61:45 Inswinging corner from left by-line taken right-footed by Filipe Morais (St Johnstone) to near post, resulting in ball out of play. Goal kick taken long by Tomas Cerny (Hamilton).
61:08 Inswinging corner from left by-line taken right-footed by Filipe Morais (St Johnstone) to near post, clearance by James Wesolowski (Hamilton).
59:56 Shot by Liam Craig (St Johnstone) right-footed from right side of penalty area (12 yards), missed right. Inswinging corner from right by-line taken left-footed by Daniel Grainger (St Johnstone) to far post, clearance by Mickael Antoine-Curier (Hamilton).
59:27 Defending throw-in by Mark McLaughlin (Hamilton).
58:57 Defending throw-in by Mark McLaughlin (Hamilton).
58:31 Defending throw-in by David MacKay (St Johnstone).
58:06 Defending throw-in by David MacKay (St Johnstone).
57:30 Shot by Filipe Morais (St Johnstone) left-footed from right channel (20 yards), save (caught) by Graeme Smith (St Johnstone).
57:12 Attacking throw-in by David MacKay (St Johnstone).
56:53 Attacking throw-in by David MacKay (St Johnstone).
56:31 Attacking throw-in by David MacKay (St Johnstone).
55:56 Attacking throw-in by David MacKay (St Johnstone).
55:19 Foul by Martin Canning (Hamilton) on Filipe Morais (St Johnstone). Free kick crossed right-footed by Liam Craig (St Johnstone) from left channel, clearance by Flavio Paixao (Hamilton).
54:39 Goal kick taken long by Tomas Cerny (Hamilton).
53:27 Cross by Simon Mensing (Hamilton), blocked by Murray Davidson (St Johnstone). Inswinging corner from right by-line taken left-footed by Brian Easton (Hamilton) to far post,
53:10 Cross by Brian Easton (Hamilton), clearance by Michael Duberry (St Johnstone).
52:33 Goal kick taken long by Tomas Cerny (Hamilton).
51:08 Foul by Flavio Paixao (Hamilton) on Filipe Morais (St Johnstone). Free kick crossed right-footed by Chris Millar (St Johnstone) from right wing, clearance by James Wesolowski (Hamilton).
50:09 Defending throw-in by Martin Canning (Hamilton).
49:48 Attacking throw-in by David MacKay (St Johnstone).
48:33 Foul by James Wesolowski (Hamilton) on Murray Davidson (St Johnstone). Free kick crossed left-footed by Daniel Grainger (St Johnstone) from left channel, save (caught) by Graeme Smith (St Johnstone).
48:09 Goal kick taken long by Graeme Smith (St Johnstone).
47:46 Cross by Mickael Antoine-Curier (Hamilton), clearance by Steven Anderson (St Johnstone).
Correction - 45:01 Substitution Steven Anderson replaces Mark Connolly.
Correction - 45:01 Substitution Kenny Deuchar goes off and Collin Samuel comes on.
45:01 The match restarts for the second half.
45:01 Substitution St Johnstone substitution: Mark Connolly replaced by Steven Anderson (injury).
45:01 Substitution St Johnstone substitution: Kenny Deuchar replaced by Collin Samuel (tactical).
45:00+2:03 The ref blows to signal half-time.
Half Time
45:00+1:29 Goal kick taken long by Graeme Smith (St Johnstone).
44:32 Inswinging corner from right by-line taken left-footed by Brian Easton (Hamilton) to near post, clearance by Mark Connolly (St Johnstone). Inswinging corner from right by-line taken left-footed by Brian Easton (Hamilton) to near post, clearance by Michael Duberry (St Johnstone).
43:44 Defending throw-in by Daniel Grainger (St Johnstone).
42:35 Assist (pass) by Simon Mensing (Hamilton) from right channel.
42:35 GOAL - James Wesolowski:Hamilton 1 - 0 St Johnstone Goal by James Wesolowski (Hamilton) right-footed (bottom-left of goal) from left channel (20 yards).Hamilton 1-0 St Johnstone.
41:41 Goal kick taken short by Tomas Cerny (Hamilton).
39:55 Free kick crossed right-footed by Brian Easton (Hamilton) from right channel, clearance by Chris Millar (St Johnstone).
39:55 Booking James McArthur (Hamilton) booked for dissent.
39:42 Booking Michael Duberry (St Johnstone) booked for unsporting behaviour.
39:24 Foul by Michael Duberry (St Johnstone) on Flavio Paixao (Hamilton).
38:19 Foul by Murray Davidson (St Johnstone) on James McArthur (Hamilton). Free kick crossed right-footed by Alex Neil (Hamilton) from right channel, clearance by Kenny Deuchar (St Johnstone).
37:34 Attacking throw-in by Douglas Imrie (Hamilton).
36:09 Free kick taken right-footed by Alex Neil (Hamilton) from left wing, resulting in open play.
36:09 Booking Mark Connolly (St Johnstone) booked for unsporting behaviour.
35:56 Foul by Mark Connolly (St Johnstone) on Flavio Paixao (Hamilton).
35:00 Defending throw-in by Mark Connolly (St Johnstone).
34:41 Attacking throw-in by Brian Easton (Hamilton).
33:58 Foul by Jody Morris (St Johnstone) on James Wesolowski (Hamilton). Free kick taken right-footed by Tomas Cerny (Hamilton) from right channel, passed.
33:20 Foul by James McArthur (Hamilton) on Murray Davidson (St Johnstone). Free kick taken left-footed by Daniel Grainger (St Johnstone) from left channel, resulting in open play.
32:51 Defending throw-in by Daniel Grainger (St Johnstone).
32:09 Defending throw-in by Martin Canning (Hamilton).
31:32 Defending throw-in by Daniel Grainger (St Johnstone).
30:46 Cross by Brian Easton (Hamilton), resulting in ball out of play. Goal kick taken long by Graeme Smith (St Johnstone).
30:07 Attacking throw-in by Brian Easton (Hamilton).
29:39 Attacking throw-in by Mark Connolly (St Johnstone).
28:53 Attacking throw-in by Simon Mensing (Hamilton).
27:52 Goal kick taken long by Graeme Smith (St Johnstone).
26:15 Foul by Murray Davidson (St Johnstone) on James Wesolowski (Hamilton). Free kick taken right-footed by Simon Mensing (Hamilton) from left channel (20 yards), blocked by Jody Morris (St Johnstone).
25:53 Attacking throw-in by Brian Easton (Hamilton).
23:28 Defending throw-in by Brian Easton (Hamilton).
21:59 Cross by Brian Easton (Hamilton), header by Mickael Antoine-Curier (Hamilton) from right side of penalty area (6 yards), missed right.
21:27 Attacking throw-in by Brian Easton (Hamilton).
20:51 Foul by Flavio Paixao (Hamilton) on Mark Connolly (St Johnstone). Free kick taken right-footed by Graeme Smith (St Johnstone) from right channel, resulting in open play.
19:58 Attacking throw-in by Brian Easton (Hamilton).
19:17 Attacking throw-in by Brian Easton (Hamilton).
18:58 Defending throw-in by Brian Easton (Hamilton).
18:37 Attacking throw-in by Mark Connolly (St Johnstone).
18:07 Mickael Antoine-Curier (Hamilton) caught offside. Free kick taken right-footed by Graeme Smith (St Johnstone) from right channel, resulting in open play.
16:49 Inswinging corner from right by-line taken left-footed by Daniel Grainger (St Johnstone) to far post, resulting in ball out of play. Goal kick taken long by Tomas Cerny (Hamilton).
16:06 Foul by Martin Canning (Hamilton) on Kenny Deuchar (St Johnstone). Free kick crossed right-footed by Filipe Morais (St Johnstone) from left wing, clearance by Simon Mensing (Hamilton).
15:26 Goal kick taken long by Graeme Smith (St Johnstone).
15:08 Attacking throw-in by Simon Mensing (Hamilton).
14:45 Attacking throw-in by Daniel Grainger (St Johnstone).
14:24 Attacking throw-in by Daniel Grainger (St Johnstone).
13:35 Attacking throw-in by Daniel Grainger (St Johnstone).
12:34 Kenny Deuchar (St Johnstone) caught offside. Free kick taken right-footed by Martin Canning (Hamilton) from right wing, resulting in open play.
11:53 Goal kick taken long by Graeme Smith (St Johnstone).
11:16 Foul by Murray Davidson (St Johnstone) on Flavio Paixao (Hamilton). Free kick taken right-footed by Flavio Paixao (Hamilton) from left wing, passed.
10:22 Attacking throw-in by Daniel Grainger (St Johnstone).
9:21 Cross by James Wesolowski (Hamilton), header by Mickael Antoine-Curier (Hamilton) from left side of penalty area (6 yards), missed left.
8:45 Shot by Jody Morris (St Johnstone) right-footed from left channel (20 yards), save (caught) by Tomas Cerny (Hamilton).
7:34 Goal kick taken long by Graeme Smith (St Johnstone).
6:42 Mickael Antoine-Curier (Hamilton) caught offside. Free kick taken right-footed by David MacKay (St Johnstone) from right channel, resulting in open play.
5:59 Cross by Liam Craig (St Johnstone), clearance by Mark McLaughlin (Hamilton).
4:37 Attacking throw-in by Simon Mensing (Hamilton).
3:24 Inswinging corner from right by-line taken right-footed by Daniel Grainger (St Johnstone) to far post, foul by Murray Davidson (St Johnstone) on Brian Easton (Hamilton). Free kick taken right-footed by Tomas Cerny (Hamilton) from own half, resulting in open play.
2:50 Foul by James McArthur (Hamilton) on Jody Morris (St Johnstone). Free kick taken right-footed by Daniel Grainger (St Johnstone) from left channel, resulting in open play.
2:16 Attacking throw-in by Daniel Grainger (St Johnstone).
1:34 Goal kick taken long by Tomas Cerny (Hamilton).
0:52 Foul by Douglas Imrie (Hamilton) on Jody Morris (St Johnstone). Free kick taken right-footed by Graeme Smith (St Johnstone) from own half, resulting in open play.
0:12 Attacking throw-in by Mark Connolly (St Johnstone).
0:00 The ref blows the whistle to start the match.
Live text and data provided by The Press Association.
Bookmark with:
What are these?