Gary Madine's equaliser deep into injury-time rescued Sheffield Wednesday a point at home to struggling Walsall.
Jon Macken gave the Saddlers the lead when he turned in Florent Cuvelier's cross, before Ryan Lowe squeezed home the equaliser from close range.
Jamie Paterson looked to have secured the visitors a priceless victory when he lashed in from the edge of the box.
But, in the fifth minute of added time, Madine turned in at the second attempt to earn his side the draw.
Following this result, Wednesday fall two points behind local rivals Sheffield United in second place, whilst Walsall drop back into the relegation zone.
VIEWS FROM THE DRESSING ROOM
Sheffield Wednesday manager Dave Jones told BBC Radio Sheffield:
"We didn't play as well as we are capable of.
"I think we got frustrated a lot and we could have been out of sight if the balls had dropped kindly for us and we'd finished a bit better.
"I think overall we just didn't do enough to earn that right to win the game."
Live Text Commentary
Full Time The referee ends the match.90:00 +4:51 Goal scored
Goal! - Gary Madine - Sheff Wed 2 - 2 Walsall Gary Madine finds the back of the net with a goal from deep inside the penalty box to the bottom left corner of the goal. Sheff Wed 2-2 Walsall.90:00 +2:58
Florent Cuvelier takes the free kick.90:00 +2:58 Substitution
Substitution Darryl Westlake on for Jamie Paterson.90:00 +2:58 Booking
Booking Jose Vitor Semedo receives a caution.90:00 +2:52
Jose Vitor Semedo challenges Jamie Paterson unfairly and gives away a free kick.90:00 +2:18
Chris Lines takes a shot. Save by David Grof.90:00 +0:33 Substitution
Substitution George Bowerman joins the action as a substitute, replacing Jonathan Macken.89:25
Direct free kick taken by Chris Lines.89:25 Booking
Booking Jonathan Macken is given a yellow card.89:12
Jonathan Macken gives away a free kick for an unfair challenge on Jose Vitor Semedo.86:08
Jonathan Macken concedes a free kick for a foul on Julian Bennett. Stephen Bywater restarts play with the free kick.85:26
The ball is swung over by Jermaine Johnson, Rob Jones takes a shot. David Grof makes a save.79:43
Free kick taken by Stephen Bywater.79:43 Substitution
Substitution Chris O'Grady comes on in place of Ryan Lowe.79:43 Booking
Booking Kevan Hurst goes into the referee's book.79:34
Mat Sadler concedes a free kick for a foul on Michail Antonio.79:10
Corner taken by Lee Beevers from the right by-line to the near post.76:45
Michail Antonio takes a shot. David Grof makes a save.74:52
Jermaine Johnson takes a shot. Save by David Grof.
Goal! - Jamie Paterson - Sheff Wed 1 - 2 Walsall Jamie Paterson fires in a goal from inside the penalty box to the top left corner of the goal. Sheff Wed 1-2 Walsall.71:16
The referee blows for offside against Ryan Lowe. Lee Beevers takes the indirect free kick.69:39
Shot from just outside the box by Jermaine Johnson goes over the bar.68:15
Michail Antonio takes a shot. Save by David Grof. Inswinging corner taken by Chris Lines, David Grof makes a save. Rob Jones concedes a free kick for a foul on David Grof. David Grof takes the free kick.67:23
Lee Beevers takes the inswinging corner,65:44
The referee blows for offside against Jamie Paterson. Free kick taken by Stephen Bywater.64:18
Effort from the edge of the area by Jonathan Macken goes wide of the left-hand post.62:56
Gary Madine gives away a free kick for an unfair challenge on David Grof. David Grof takes the direct free kick.62:11 Substitution
Substitution Jermaine Johnson comes on in place of Mike Jones.59:16 Goal scored
Goal! - Ryan Lowe - Sheff Wed 1 - 1 Walsall Ryan Lowe fires in a goal from inside the six-yard box to the bottom left corner of the goal. Sheff Wed 1-1 Walsall.59:04
Outswinging corner taken from the right by-line by Chris Lines,57:14
The assist for the goal came from Jamie Paterson.57:14 Goal scored
Goal! - Jonathan Macken - Sheff Wed 0 - 1 Walsall Jonathan Macken scores a goal from the edge of the penalty box to the top right corner of the goal. Sheff Wed 0-1 Walsall.55:07
Danny Batth gives away a free kick for an unfair challenge on Andy Butler. David Grof takes the direct free kick.54:36
Free kick awarded for an unfair challenge on Chris Lines by Florent Cuvelier. Free kick taken by Chris Lines.53:12
Jamie Paterson gives away a free kick for an unfair challenge on Jose Vitor Semedo. Chris Lines takes the free kick.51:53
The referee blows for offside. Stephen Bywater restarts play with the free kick.49:11
Free kick awarded for an unfair challenge on Jonathan Macken by Danny Batth. Direct free kick taken by Florent Cuvelier.45:01
The second half begins.45:00 +1:33 Half time
Half Time The referee calls an end to the first half.45:00 +0:32
Florent Cuvelier crosses the ball.44:29
Jose Vitor Semedo produces a cross, clearance by Andy Butler.43:53
Gary Madine produces a cross. Corner taken by Chris Lines from the left by-line, clearance made by Andy Butler.42:15
Mat Sadler concedes a free kick for a foul on Michail Antonio. Chris Lines has a direct shot on goal from the free kick.40:48
Ryan Lowe takes a shot. David Grof makes a save.38:39
Ryan Lowe takes a shot. Save by David Grof.38:00 Booking
Booking Emmanuele Smith is cautioned by the ref for dissent.36:57
Inswinging corner from left by-line taken by Kevan Hurst to short.35:00
Jose Vitor Semedo is adjudged to have handled the ball. Direct free kick taken by Lee Beevers.33:48
Gary Madine concedes a free kick for a foul on Emmanuele Smith. Mat Sadler restarts play with the free kick.31:51
Emmanuele Smith gives away a free kick for an unfair challenge on Gary Madine. Free kick taken by Danny Batth.31:07
Julian Bennett is penalised for a handball. David Grof takes the indirect free kick.29:46
Shot from outside the box by Jamie Paterson goes wide right of the target.28:41
Gary Madine is flagged offside by the assistant referee. David Grof restarts play with the free kick.27:51
Shot from outside the area by Sam Mantom misses to the left of the goal.26:47
Michail Antonio takes a shot.23:55
Ryan Lowe is caught offside. David Grof takes the indirect free kick.16:10
Michail Antonio takes a shot.13:43
Chris Lines takes a outswinging corner.13:00
The ball is delivered by Mike Jones. Ryan Lowe produces a right-footed shot from inside the area that goes over the bar.12:03
Chris Lines takes the inswinging corner, save by David Grof.10:53
The assistant referee signals for offside against Alex Nicholls. Free kick taken by Stephen Bywater.8:46
Ryan Lowe is flagged offside by the assistant referee. Free kick taken by David Grof.8:07
Foul by Jonathan Macken on Rob Jones, free kick awarded. Stephen Bywater takes the direct free kick.5:49
Gary Madine challenges Andy Butler unfairly and gives away a free kick. Emmanuele Smith takes the direct free kick.4:41
Effort on goal by Ryan Lowe from just inside the penalty area goes over the target.3:47
Lee Beevers challenges Ryan Lowe unfairly and gives away a free kick. Free kick taken by Chris Lines.0:00
The referee starts the match.
Live data and text provided by our data suppliers