St Mirren and Dundee United defied the stormy conditions to share four goals in Paisley.
Saints forward Stephen Thompson reacted first to convert Graham Carey's cross to give his team a 27th-minute lead.
United were level when Jon Daly rifled the ball low into the net, before Carey responded almost immediately with a fine long-range strike.
Stuart Armstrong completed the scoring 10 minutes before the break, heading home Gary Mackay-Steven's cross.
United made a good start despite the terrible weather conditions, Daly drawing an early save from home goalkeeper Craig Samson.
However, St Mirren came into the game and Jeroen Tesselaar and then Carey came close.
Thompson gave his side the lead after 27 minutes when he reacted first to Carey's ball in from the right side of the box, pouncing to send it into the left-hand side of the goal.
United responded immediately and were back on level terms after 31 minutes when Daly netted low to the left corner to make it 1-1, marking the start of an extraordinary spell of action.
A mintue later, St Mirren were back in front thanks to a stunning goal from Carey, who cracked the ball in from 25 yards on the right into the top-left corner of United goalkeeper Dusan Pernis's net.
Armstrong headed home from close range to equalise for a second time from Mackay-Steven's cross, and Johnny Russell almost gave his side a half-time lead, but Samson blocked his shot at the end of a solo run.
United again made a bright start to the second half with Mackay-Steven hitting the post, while St Mirren's David van Zanten and Aaron Mooy both watched efforts go close.
United's John Rankin made Samson push away a long-range effort for a corner.
St Mirren were within inches of going in front for a third time just after the hour, but Robbie Neilson cleared off the line with Thompson waiting to poke home.
Live Text Commentary
Full Time The referee blows his whistle to end the game.90:00 +1:09
The ball is sent over by Jeroen Tesselaar, Dusan Pernis makes a comfortable save.89:04
Free kick awarded for a foul by Scott Allan on David van Zanten. David van Zanten takes the direct free kick.87:16
Unfair challenge on John Rankin by Paul McGowan results in a free kick. Robbie Neilson takes the direct free kick.85:43 Substitution
Substitution Nigel Hasselbaink replaces Aaron Mooy.85:43 Substitution
Substitution Gary Mackay-Steven leaves the field to be replaced by Willo Flood.84:37
The ball is crossed by Aaron Mooy, clearance by Paul Dixon.84:09
Inswinging corner taken left-footed by Kenny McLean from the right by-line, Gavin Gunning makes a clearance.84:02
Jeroen Tesselaar crosses the ball, clearance made by Paul Dixon.83:28
Gavin Gunning concedes a free kick for a foul on Steven Thompson. David Barron restarts play with the free kick.82:57
Effort on goal by John Rankin from outside the penalty box goes harmlessly over the bar.81:15
Free kick awarded for an unfair challenge on John Rankin by David van Zanten. Paul Dixon takes the direct free kick.79:52
The ball is sent over by Jeroen Tesselaar.79:23
John Rankin challenges Paul McGowan unfairly and gives away a free kick. David van Zanten takes the free kick.78:31
David Barron restarts play with the free kick.78:31 Booking
Booking Booking for Paul Dixon.78:22
Paul McGowan fouled by Paul Dixon, the ref awards a free kick.77:47
Scott Allan decides to take a short corner.77:28
Inswinging corner taken right-footed by Scott Allan from the left by-line, clearance by Marc McAusland.77:22
The ball is crossed by Gary Mackay-Steven, David Barron gets a block in.
Steven Thompson gives away a free kick for an unfair challenge on Sean Dillon. Sean Dillon restarts play with the free kick.76:22
Free kick awarded for a foul by Paul McGowan on Scott Robertson. Free kick taken by Sean Dillon.75:48
Outswinging corner taken right-footed by Gary Teale, John Rankin makes a clearance.75:27
Free kick awarded for a foul by Gavin Gunning on Gary Teale. Free kick crossed by Gary Teale.74:23
Paul Dixon restarts play with the free kick.74:23 Substitution
Substitution Graham Carey leaves the field to be replaced by Gary Teale.74:23
David Barron challenges Scott Robertson unfairly and gives away a free kick.71:44
The referee blows for offside against Scott Allan. Free kick taken by Craig Samson.71:00
Effort on goal by Jeroen Tesselaar from outside the area goes harmlessly over the bar.70:08 Substitution
Substitution (Dundee Utd) makes a substitution, with Scott Allan coming on for Stuart Armstrong.69:04
The ball is swung over by Aaron Mooy. Outswinging corner taken by Kenny McLean from the left by-line, clearance made by Robbie Neilson.67:05
Free kick awarded for a foul by Robbie Neilson on Graham Carey. The free kick is swung in left-footed by Graham Carey, clearance made by Scott Robertson.62:10
Inswinging corner taken by Graham Carey, Header from close in by Steven Thompson misses to the left of the goal.62:00
The ball is sent over by Marc McAusland, clearance by Robbie Neilson.61:22
Kenny McLean sends in a cross, blocked by Gavin Gunning. Inswinging corner taken right-footed by Paul McGowan, Gavin Gunning manages to make a clearance.59:51
Unfair challenge on Steven Thompson by Gary Mackay-Steven results in a free kick. Free kick taken by Paul McGowan.58:15
Lobbed right-footed shot by Paul McGowan. Dusan Pernis makes a save.57:01
Shot from 20 yards from Stuart Armstrong. Marc McAusland gets a block in.56:32
Inswinging corner taken left-footed by Gary Mackay-Steven from the right by-line to the near post, clearance by Lee Mair.55:14
The assistant referee flags for offside against Gary Mackay-Steven. Free kick taken by Craig Samson.52:04
Shot from 35+ yards from John Rankin. Save made by Craig Samson. Inswinging corner taken by Gary Mackay-Steven from the right by-line, Jeroen Tesselaar makes a clearance.51:18
David van Zanten delivers the ball, save made by Dusan Pernis.51:01
Gary Mackay-Steven concedes a free kick for a foul on Aaron Mooy. Free kick taken by David van Zanten.49:47
A cross is delivered by Aaron Mooy.48:33
Effort from outside the box by David van Zanten goes wide right of the target.47:23
A cross is delivered by Paul Dixon.47:12
Johnny Russell delivers the ball, clearance made by Kenny McLean.46:14
Free kick awarded for a foul by Gary Mackay-Steven on David van Zanten. Free kick taken by David Barron. Gary Mackay-Steven takes a shot from just outside the area and strikes the post.45:01
The referee starts the second half.45:00 +1:15 Half time
Half Time The match has reached half-time.44:12
Gary Mackay-Steven takes a shot. Save by Craig Samson.42:44
The ball is sent over by Jeroen Tesselaar, Dusan Pernis makes a comfortable save.41:06
The ball is crossed by Paul McGowan, comfortable save by Dusan Pernis.38:59
Gary Mackay-Steven takes the chance to get an effort at goal. Blocked by Marc McAusland.37:32
John Rankin challenges Graham Carey unfairly and gives away a free kick. David van Zanten takes the direct free kick.37:15
Johnny Russell takes a shot. Save made by Craig Samson.34:58
Assist on the goal came from Gary Mackay-Steven.34:58 Goal scored
Goal! - Stuart Armstrong - St Mirren 2 - 2 Dundee U Stuart Armstrong grabs a headed goal from close in. St Mirren 2-2 Dundee Utd.34:56
Gary Mackay-Steven produces a cross,31:56
Assist by Aaron Mooy.31:56 Goal scored
Goal! - Graham Carey - St Mirren 2 - 1 Dundee U Graham Carey finds the net with a goal from outside the area to the top left corner of the goal. St Mirren 2-1 Dundee Utd.31:34
Kenny McLean takes a shot. Save by Dusan Pernis.30:41
Paul Dixon provided the assist for the goal.30:41 Goal scored
Goal! - Jon Daly - St Mirren 1 - 1 Dundee U Jon Daly finds the back of the net with a goal from close range to the bottom left corner of the goal. St Mirren 1-1 Dundee Utd.30:37
The ball is delivered by Paul Dixon,29:56
Centre by Paul Dixon, Lee Mair makes a clearance. Inswinging corner taken from the right by-line by Gary Mackay-Steven, save by Craig Samson.27:36
Corner taken left-footed by Gary Mackay-Steven, Lee Mair manages to make a clearance.26:27
Assist by Aaron Mooy.26:27 Goal scored
Goal! - Steven Thompson - St Mirren 1 - 0 Dundee U A goal is scored by Steven Thompson from inside the penalty box high into the middle of the goal. St Mirren 1-0 Dundee Utd.23:19
Unfair challenge on Graham Carey by John Rankin results in a free kick. Direct effort from the free kick comes in from Graham Carey. Inswinging corner taken by Graham Carey from the right by-line played to the near post.22:25
Shot on goal by Paul McGowan from inside the box goes harmlessly over the target.21:51
Steven Thompson produces a cross, save made by Dusan Pernis. Inswinging corner taken by Graham Carey from the right by-line played to the near post, save by Dusan Pernis.19:34
Corner taken by Paul McGowan.19:26
The ball is crossed by David van Zanten, Robbie Neilson manages to make a clearance.18:29
Short corner taken by Paul McGowan from the left by-line.16:16
Gary Mackay-Steven takes a shot. Lee Mair gets a block in. Outswinging corner taken by Gary Mackay-Steven, Kenny McLean manages to make a clearance.15:44
The ball is sent over by Paul McGowan, Sean Dillon makes a clearance.15:34
Paul McGowan decides to take the corner short.15:19
Shot by Paul McGowan. Save by Dusan Pernis.14:08
The ball is sent over by Jon Daly, blocked by Jeroen Tesselaar.12:37
The ball is sent over by Paul Dixon, blocked by David van Zanten. Corner taken by Gary Mackay-Steven from the left by-line played to the near post, Lee Mair makes a clearance.11:33
Aaron Mooy produces a left-footed shot from just outside the box that goes wide right of the target.10:38
Stuart Armstrong gives away a free kick for an unfair challenge on Kenny McLean. Shot comes in from Graham Carey from the free kick.8:47
The ball is swung over by Aaron Mooy, clearance made by Sean Dillon. Jeroen Tesselaar has an effort at goal from long range that misses to the right of the goal.7:56
Effort on goal by Jon Daly from 20 yards. Craig Samson makes a save.5:29
The ball is crossed by Robbie Neilson, blocked by Jeroen Tesselaar.4:33
Free kick awarded for an unfair challenge on Gary Mackay-Steven by Graham Carey. Gary Mackay-Steven delivers the ball from the free kick left-footed from left by-line, clearance made by Lee Mair.3:15
Foul by David Barron on Stuart Armstrong, free kick awarded. Direct free kick taken by Sean Dillon.1:59
Shot from long range by Paul Dixon misses to the right of the goal.0:35
John Rankin produces a cross, Marc McAusland makes a clearance.0:20
Gary Mackay-Steven decides to take the corner short.0:13
Johnny Russell crosses the ball, Marc McAusland makes a clearance.0:00
The match gets underway.
Live data and text provided by our data suppliers