Will Grigg scored his fifth goal in two matches as Walsall beat Shrewsbury to step up their League One play-off bid.
Shrewsbury trailed only 1-0 at the break to Grigg's 30th-minute penalty before being rocked by two strikes in seven early second-half minutes.
- Walsall's win was revenge for a luckless 1-0 defeat at the Meadow earlier in the season when they were kept out only by a stunning display from home keeper Chris Weale
Craig Westcarr turned in from close range after Town keeper Chris Weale failed to clear James Chambers' cross, before top scorer Grigg hit a second.
But Town could only respond with Dave McAllister's late close-range header.
Midfielder McAllister, only allowed to play after having his midweek red card against Doncaster overturned on appeal, turned in on-loan West Bromwich Albion defender Cameron Gayle's cross.
Having also fired home from the spot to launch his first senior hat-trick in Tuesday night's 3-0 win at Carlisle, Grigg again put the Saddlers in front with a penalty after Febian Brandy had been brought down by a combined tackle from Joe Jacobson and Rob Edwards.
The Northern Ireland international then burst into the box to hammer his second on 54 minutes in front of Bescot's biggest crowd of the season.
Grigg, who now has 16 goals for the season, also had a hand in Westcarr's first strike for the Saddlers (on his 14th appearance), getting a touch to Chambers' cross two minutes into the second half.
Shrewsbury's second straight defeat leaves them just four points clear of trouble, while Walsall are within five points of the play-off zone after extending their unbeaten run to six matches.
VIEW FROM THE DRESSING ROOM
Shrewsbury Town manager Graham Turner told BBC Radio Shropshire:
"It's our worst performance of the season but you have to hand it to Walsall. They are a very sharp side and they don't give it away like we did.
"We knew what they were about and it was a soft penalty to give away - we paid the price to give them the lead.
"We hoped to put them under a bit of pressure but even the goal we got back didn't do that.
"As a side we have to think why we were so poor. We have to get over this to begin to move forward and work out why we had so many poor performances."
Live Text Commentary
Full Time The game is over, as the referee blows his whistle.90:00 +3:29
David McAllister is ruled offside. Aaron Mccarey takes the free kick.90:00 +3:12
The ball is sent over by Marvin Morgan, Paul Downing makes a clearance.90:00 +1:21
Free kick awarded for a foul by Robert Purdie on Jamie Paterson. Free kick taken by Jamie Paterson.88:57
Indirect free kick taken by Aaron Mccarey.88:57 Substitution
Substitution Febian Brandy leaves the field to be replaced by James Baxendale.88:57
Rob Edwards concedes a free kick for a foul on Aaron Mccarey.88:22
Unfair challenge on David McAllister by Andy Taylor results in a free kick. Matthew Richards takes the indirect free kick.86:45
Jamie Paterson decides to take the corner short.85:44
A cross is delivered by Jamie Paterson, Darren Jones manages to make a clearance.83:54
Indirect free kick taken by Aaron Mccarey.83:54 Substitution
Substitution Nicky Featherstone comes on in place of Craig Westcarr.83:54
Marvin Morgan is caught offside.83:06
The ball is sent over by Cameron Gayle, Matthew Richards takes a inswinging corner to the near post, Sam Mantom manages to make a clearance. Paul Downing manages to make a clearance.82:37
The ball is crossed by Sam Mantom, Rob Edwards makes a clearance.81:43
Darren Jones takes a shot. Corner taken right-footed by Robert Purdie from the left by-line, Febian Brandy gets a block in. Andy Butler makes a clearance.81:32
The ball is delivered by Robert Purdie, Andy Butler manages to make a clearance.81:05
The ball is sent over by Marvin Morgan, Andy Butler manages to make a clearance.79:56
Craig Westcarr takes the inswinging corner, clearance made by Darren Jones.78:03
Adam Chambers concedes a free kick for a foul on David McAllister. Joe Jacobson takes the free kick.
Assist on the goal came from Cameron Gayle.76:39 Goal scored
Goal! - David McAllister - Walsall 3 - 1 Shrewsbury David McAllister grabs a headed goal from close in. Walsall 3-1 Shrewsbury.76:33
The ball is sent over by Cameron Gayle,74:56
The ball is delivered by Jamie Paterson, Will Grigg takes a shot. Save by Chris Weale.74:21
Centre by Joe Jacobson, clearance made by Paul Downing.74:00
The ball is delivered by Joe Jacobson, clearance by Paul Downing.73:48
The ball is sent over by David McAllister, clearance by Andy Taylor.72:07
Febian Brandy delivers the ball.71:32
Foul by Matthew Richards on James Chambers, free kick awarded. James Chambers takes the free kick.70:05
Jamie Paterson takes a shot. Andy Butler fouled by Marvin Morgan, the ref awards a free kick. Aaron Mccarey takes the indirect free kick. Save by Chris Weale.69:22
Robert Purdie fouled by Adam Chambers, the ref awards a free kick. David McAllister takes the free kick.67:17
Centre by Cameron Gayle, Tom Eaves has a headed effort at goal from close in which goes wide left of the target.67:08
Joe Jacobson delivers the ball, Andy Butler makes a clearance.64:32 Substitution
Substitution Stephen McGinn leaves the field to be replaced by Luke Summerfield.64:32 Substitution
Substitution Paul Parry goes off and Robert Purdie comes on.63:29
Free kick awarded for an unfair challenge on Andy Butler by Tom Eaves. Aaron Mccarey takes the indirect free kick.62:18
Foul by Adam Chambers on Paul Parry, free kick awarded. Joe Jacobson restarts play with the free kick.61:39
Tom Eaves produces a right-footed shot from outside the penalty box and misses wide left of the target.60:08
Will Grigg concedes a free kick for a foul on Joe Jacobson. Indirect free kick taken by Chris Weale.57:11
Shot by Stephen McGinn from 25 yards. Save made by Aaron Mccarey.56:20
The ball is delivered by David McAllister, clearance made by Sam Mantom.55:15
Tom Eaves has an effort at goal from the edge of the box that misses to the right of the target.53:34 Goal scored
Goal! - Will Grigg - Walsall 3 - 0 Shrewsbury Will Grigg grabs a goal from the edge of the penalty area to the bottom left corner of the goal. Walsall 3-0 Shrewsbury.52:29
The referee blows for offside against Tom Eaves. Aaron Mccarey restarts play with the free kick.51:29
Adam Chambers challenges Stephen McGinn unfairly and gives away a free kick. Indirect free kick taken by Rob Edwards.49:23
The ball is crossed by James Chambers, clearance by Rob Edwards.47:39
Stephen McGinn takes a shot. Inswinging corner taken by Stephen McGinn, clearance made by Andy Taylor. Corner taken by Stephen McGinn from the left by-line, clearance by Paul Downing. Unfair challenge on Febian Brandy by Stephen McGinn results in a free kick. Andy Taylor takes the indirect free kick. Save by Aaron Mccarey.46:14 Goal scored
Goal! - Craig Westcarr - Walsall 2 - 0 Shrewsbury Craig Westcarr scores a goal from inside the box to the bottom left corner of the goal. Walsall 2-0 Shrewsbury.45:57
Sam Mantom produces a cross.45:09
Effort from outside the penalty box by David McAllister goes wide left of the target.45:01
The referee gets the second half underway.45:00 +1:14 Half time
Half Time The whistle is blown to end the first half.44:41 Booking
Booking Andy Butler receives a caution.44:38
Stephen McGinn fouled by Andy Butler, the ref awards a free kick. Free kick taken by Matthew Richards.42:47
The ball is swung over by Stephen McGinn, David McAllister takes a shot. Save made by Aaron Mccarey.42:22
Inswinging corner taken right-footed by Stephen McGinn, clearance by James Chambers.42:04
Tom Eaves takes a shot. Andy Butler gets a block in.40:52
The ball is crossed by Joe Jacobson, Aaron Mccarey makes a save.40:08
The offside flag is raised against Craig Westcarr. Matthew Richards restarts play with the free kick.38:29
David McAllister handles the ball and concedes a free kick. Paul Downing takes the indirect free kick.37:09
David McAllister has a shot on goal from outside the area which misses left.35:04
Indirect free kick taken by Jamie Paterson.35:04 Booking
Booking Cameron Gayle receives a caution.34:47
Foul by Cameron Gayle on Febian Brandy, free kick awarded.33:57
Inswinging corner taken left-footed by Matthew Richards played to the near post, Andy Butler makes a clearance.32:39
Will Grigg takes a shot. Clearance made by Rob Edwards. The ball is delivered by Jamie Paterson, save by Chris Weale.32:14
Free kick awarded for an unfair challenge on Will Grigg by Darren Jones. Indirect free kick taken by Jamie Paterson.29:39 Goal scored
Goal! - Will Grigg - Walsall 1 - 0 Shrewsbury Will Grigg scores a power penalty. Walsall 1-0 Shrewsbury.28:34
Stephen McGinn concedes a Penalty for a foul on Febian Brandy.26:04
Will Grigg concedes a free kick for a foul on Cameron Gayle. Chris Weale takes the indirect free kick.25:11
Febian Brandy fouled by Joe Jacobson, the ref awards a free kick. Free kick taken by Andy Taylor.24:00
Darren Jones takes a shot. Aaron Mccarey makes a brilliant save.23:13
Marvin Morgan fouled by Paul Downing, the ref awards a free kick. Indirect free kick taken by Stephen McGinn.21:56
Foul by Rob Edwards on Will Grigg, free kick awarded. Indirect free kick taken by Andy Taylor.21:35
Free kick awarded for a foul by Febian Brandy on Joe Jacobson. Stephen McGinn restarts play with the free kick.20:46
Tom Eaves takes a shot. Save made by Aaron Mccarey.19:40
A cross is delivered by Matthew Richards, save by Aaron Mccarey.19:03
Unfair challenge on Stephen McGinn by Craig Westcarr results in a free kick. Chris Weale takes the indirect free kick.17:53
Matthew Richards produces a cross, clearance by Andy Taylor.14:19
The ball is swung over by Matthew Richards, Stephen McGinn takes a shot. Andy Taylor gets a block in.13:16
David McAllister challenges Craig Westcarr unfairly and gives away a free kick. Indirect free kick taken by Sam Mantom.11:50
Inswinging corner taken by Andy Taylor from the right by-line played to the near post, clearance by Matthew Richards.11:07
Jamie Paterson decides to take a short corner.9:23
Unfair challenge on Adam Chambers by Tom Eaves results in a free kick. Indirect free kick taken by Jamie Paterson, Andy Taylor takes a shot. Save by Chris Weale.8:32
Corner from the left by-line taken by Craig Westcarr, clearance made by Joe Jacobson.8:18
Centre by Andy Taylor, clearance by Joe Jacobson.5:56
Febian Brandy fouled by Stephen McGinn, the ref awards a free kick. James Chambers restarts play with the free kick.5:14
Corner taken by Craig Westcarr from the left by-line played to the near post, Chris Weale makes a save.4:29
Jamie Paterson fouled by Paul Parry, the ref awards a free kick. Free kick taken by Jamie Paterson.3:14
Foul by Marvin Morgan on Adam Chambers, free kick awarded. Indirect free kick taken by James Chambers.2:59
Marvin Morgan challenges Paul Downing unfairly and gives away a free kick. Indirect free kick taken by Paul Downing.1:25
Free kick awarded for an unfair challenge on Tom Eaves by Adam Chambers. Joe Jacobson takes the free kick.0:00
The match gets underway.
Live data and text provided by our data suppliers