It was the day that had to come sometime - Inverness Caledonian Thistle failing to score in a match for the first time this season.
Yet it was a match that entertained despite the blank scoreline.
Goalkeepers Antonio Reguero and Alan Mannus were both in fine form, while Saints' David McCracken had an effort cleared off the line.
But Caley Thistle at least had the consolation of moving a point closer to beaten leaders Celtic.
The Scottish Premier League's second-top side failing to score by full-time had looked an unlikely scenario after only seven minutes.
Billy McKay curled a low shot wide then, five minutes later, Andrew Shinnie's shimmie put him clear to move in on goal, but Mannus came out quickly to block.
Saints' first test of Reguero came after 16 minutes, a well struck free-kick by Liam Craig from 30 yards out being fisted away by the Inverness goalkeeper.
The home side, without a win in five Scottish Premier League matches were second best at the start of the game, but they had worked their way into the match to make it an even contest.
It was no surprise when they almost took the lead three minutes from half-time.
Liam Craig's dangerous corner was met by McCracken, but the defender's header was cleared off the line.
And, in the follow-up, Paddy Cregg was booked for simulation while trying to convince the referee that he had been fouled.
Caley Thistle, who have scored in every game this season, then tried to ink their name onto the scoresheet prior to the interval, first through Aaron Doran and then by Graeme Shinnie.
But, on both occasions, Mannus was alert to keep them out.
The second half did not have the pace of the first, but Saints finishing the stronger and Caley Thistle ended the game with their three top scorers having been substituted.
Gregory Tade has four goals this season and he had the best of the opportunities, two through his own creation, but Regeuro was his equal, much to the frustration of the home support.
Both defences have had their problems at times this season, but their displays will have heartened their managers.
St Johnstone's Steve Lomas will be frustrated that their failure in front of goal continues to cost them points.
Meanwhile, Terry Butcher will be content to see his Caley Thistle side stretch their unbeaten SPL run to seven games.
- 01 Mannus
- 02 MacKay
- 03 Davidson
- 05 Wright
- 18 McCracken
- 04 Cregg Booked (Hasselbaink - 76' )
- 08 Davidson
- 10 Craig
- 22 Pawlett
- 09 Tade
- 17 MacLean (Vine - 59' )
- 15 Tuffey
- 19 Miller
- 26 Caddis
- 14 Moon
- 11 Hasselbaink
- 23 Vine
- 40 Steeves
Inverness Caledonian Thistle
- 12 Reguero
- 02 Raven Booked
- 03 Shinnie
- 05 Warren
- 32 Cooper
- 04 Tudur-Jones Booked
- 08 Draper Booked
- 10 Shinnie (Roberts - 74' )
- 07 McKay (Ross - 88' )
- 09 Foran (Pepper - 68' )
- 17 Doran
- 01 Esson
- 11 Ross
- 19 Morrison
- 21 Polworth
- 22 Pepper
- 18 Sutherland
- 23 Roberts
Live Text Commentary
Full Time The final whistle is blown by the referee.90:00 +2:33
Rowan Vine concedes a free kick for a foul on Owain Tudur Jones. Free kick taken by Gary Warren.89:15
The referee penalises Rowan Vine for handball. Direct free kick taken by Antonio Reguero.87:46
Gregory Tade challenges Gary Warren unfairly and gives away a free kick. Free kick taken by Aaron Doran.87:46 Substitution
Substitution Nick Ross on for Billy McKay.84:08
Liam Craig has an effort at goal from long range that misses to the right of the goal.82:04
Free kick awarded for a foul by Aaron Doran on David McCracken. Free kick taken by Alan Mannus.80:23
Corner taken by Liam Craig, Owain Tudur Jones manages to make a clearance.79:45
Frazer Wright gives away a free kick for an unfair challenge on Philip Roberts. Free kick taken by Gary Warren.78:31
Ross Draper challenges Murray Davidson unfairly and gives away a free kick. Liam Craig crosses the ball in from the free kick, clearance by Gary Warren.78:10
The official flags Philip Roberts offside. Alan Mannus takes the free kick.76:20
Free kick awarded for a foul by Ross Draper on Peter Pawlett. Direct free kick taken by David MacKay.75:16 Substitution
Substitution Patrick Cregg goes off and Nigel Hasselbaink comes on.74:27
Close range effort by Billy McKay goes wide of the left-hand upright.74:03
Philip Roberts has an effort at goal from deep inside the area missing to the right of the target.73:16
Inswinging corner taken by Aaron Doran from the left by-line,73:16 Substitution
Substitution Philip Roberts replaces Andrew Shinnie.72:29 Booking
Booking David Raven goes into the referee's book for unsporting behaviour.71:10
Free kick awarded for an unfair challenge on David Raven by Rowan Vine. Antonio Reguero takes the direct free kick.70:10
Ross Draper gives away a free kick for an unfair challenge on Murray Davidson. Free kick crossed right-footed by David MacKay, Gary Warren makes a clearance.
Booking Caution for Ross Draper.68:21
David MacKay sends in a cross, save by Antonio Reguero.67:35
Free kick awarded for a foul by Richie Foran on Patrick Cregg. David MacKay takes the free kick.67:35 Substitution
Substitution Conor Pepper replaces Richie Foran.66:19
Owain Tudur Jones concedes a free kick for a foul on Frazer Wright. Liam Craig delivers the ball from the free kick left-footed from left channel.66:19 Booking
Booking The referee cautions Owain Tudur Jones for unsporting behaviour.63:59
Free kick awarded for a foul by Patrick Cregg on Billy McKay. Graeme Shinnie delivers the ball from the free kick left-footed from left channel, clearance by Frazer Wright.62:05
A cross is delivered by Liam Craig, Header from close range by Murray Davidson misses to the right of the goal.59:26
Gregory Tade takes a shot. Save by Antonio Reguero.57:56 Substitution
Substitution (St Johnstone) makes a substitution, with Rowan Vine coming on for Steven MacLean.57:20
Gregory Tade delivers the ball.56:15
Steven MacLean is ruled offside. Antonio Reguero restarts play with the free kick.55:04
Centre by Liam Craig, Gary Warren manages to make a clearance.52:01
Free kick awarded for an unfair challenge on David MacKay by Richie Foran. Free kick taken by David MacKay.51:46
The ball is crossed by David McCracken.47:12
Foul by Aaron Doran on Patrick Cregg, free kick awarded. Direct free kick taken by Alan Mannus.45:29
Corner taken left-footed by Graeme Shinnie from the right by-line, clearance by Frazer Wright.45:16
Billy McKay produces a cross, blocked by Frazer Wright.45:01
The game restarts for the second half.45:00 +1:08 Half time
Half Time It is the end of the first-half.45:00 +0:05
Inswinging corner taken left-footed by Graeme Shinnie from the right by-line, Alan Mannus makes a save.44:51
David Raven sends in a cross, blocked by Callum Davidson.44:03
Aaron Doran takes a outswinging corner to the near post, save made by Alan Mannus.43:21 Booking
Booking Patrick Cregg goes into the referee's book.42:05
Corner taken by Liam Craig.41:37
Peter Pawlett takes a shot. Save by Gary Warren.40:26
Outswinging corner taken by Liam Craig from the left by-line, clearance made by Owain Tudur Jones.39:55
Liam Craig takes a inswinging corner from the right by-line to the near post, David Raven manages to make a clearance.37:54
Richie Foran takes the inswinging corner, clearance by David McCracken.37:18
Aaron Doran takes a shot. Save by Frazer Wright.36:28
Unfair challenge on Owain Tudur Jones by Liam Craig results in a free kick. Matthew Cooper takes the direct free kick.35:02
Gary Warren challenges Murray Davidson unfairly and gives away a free kick. Liam Craig delivers the ball from the free kick left-footed from right channel, clearance made by Owain Tudur Jones.33:16
Foul by Owain Tudur Jones on Liam Craig, free kick awarded. Free kick crossed by Callum Davidson.32:02
Frazer Wright takes a shot. Save by Antonio Reguero.30:13
Steven MacLean is flagged offside by the assistant referee. Gary Warren takes the direct free kick.28:42
Peter Pawlett has an effort at goal from the edge of the area that misses to the right of the target.26:13
Billy McKay is ruled offside. Direct free kick taken by Alan Mannus.25:39
Steven MacLean delivers the ball, save by Antonio Reguero.25:04
Unfair challenge on Patrick Cregg by Owain Tudur Jones results in a free kick. Liam Craig takes the direct free kick.21:35
Corner from right by-line taken by Liam Craig.21:00
The ball is crossed by Patrick Cregg, Gregory Tade takes a shot.18:59
David MacKay produces a cross.17:36
Foul by Steven MacLean on Gary Warren, free kick awarded. Matthew Cooper takes the free kick.16:10
The ball is delivered by Callum Davidson.15:11
Gregory Tade fouled by Gary Warren, the ref awards a free kick. Direct effort from the free kick comes in from Liam Craig, save made by Antonio Reguero.13:42
Liam Craig delivers the ball in from the corner, clearance by Owain Tudur Jones.13:10
Gregory Tade takes a shot. Save by Matthew Cooper.12:02
A cross is delivered by David Raven, David McCracken makes a clearance.10:01
Free kick awarded for an unfair challenge on Liam Craig by Owain Tudur Jones. Callum Davidson restarts play with the free kick.8:53
Owain Tudur Jones gives away a free kick for an unfair challenge on Murray Davidson. Direct free kick taken by Callum Davidson.7:20
Andrew Shinnie takes a shot. Save by Alan Mannus.6:00
Free kick awarded for a foul by Frazer Wright on Aaron Doran. Free kick crossed by Aaron Doran, Frazer Wright makes a clearance.5:09
Unfair challenge on Murray Davidson by Owain Tudur Jones results in a free kick. Free kick crossed by David McCracken, clearance by Matthew Cooper.4:18
The referee blows for offside against Gregory Tade. Free kick taken by Antonio Reguero.3:32
Billy McKay is penalised for handball and concedes a free kick. Alan Mannus restarts play with the free kick.1:47
Effort from the edge of the area by David MacKay goes wide of the right-hand post.0:00
The match gets underway.
Live data and text provided by our data suppliers