Paul Parry's first-half volley helped Shrewsbury beat Walsall and move out of the League One relegation zone.
The Saddlers were repeatedly frustrated by Town keeper Chris Weale, who made a number of stunning saves.
Weale twice denied Jamie Paterson and then Adam Chambers before Parry found the net from close range on 25 minutes after Asa Hall's shot had hit the bar.
Andy Butler also headed against the bar for Walsall, Weale denied George Bowerman and Parry hit the bar late on.
It was Shrewsbury's first win in 10 derby meetings against Walsall since December 1993.
A first win in six matches, in all competitions, lifts Graham Turner's men up to 15th in the table.
Walsall now stand 11th, four points off a play-off place, thanks to their third league defeat in nine days.
VIEW FROM THE DRESSING ROOM
Shrewsbury Town manager Graham Turner told BBC Radio Shropshire:
"The vital thing is the result. It doesn't matter how you get them. Managers, and press, talk about winning ugly.
"But it's important that when the TV cameras show the lower leagues that there is good entertainment - even though most of it was in our penalty area.
"We came under a lot of pressure and the keeper has just displayed what we knew he could do - it was an outstanding performance from him. He's earned us the three points.
"You sign good goalkeepers and you expect them to make saves. That's why one of our key signings was to bring in the experience and ability of Chris Weale."
Walsall manager Dean Smith told BBC WM:
"It was just one of those games which wasn't meant to be. The only thing missing was that we didn't put the ball in the back of the net.
"We controlled the game the whole of the first half and they scored from a set piece in their first attack.
"Their goalkeeper was man of the match which was just reward for him, but we've had other chances that have gone begging.
"I'm just glad I was on TV, so that people can see how well we played and that I don't sound like a broken record."
- 01 Weale
- 02 Grandison
- 15 Collins
- 23 Hector
- 04 Summerfield
- 08 Richards
- 11 Taylor (Bradshaw - 89' )
- 14 Hall
- 17 Parry (Wright - 77' )
- 20 Wildig
- 10 Morgan Booked
- 25 Anyon
- 03 Jacobson
- 18 Goldson
- 06 Purdie
- 07 Wright
- 09 Bradshaw
- 16 Doble
- 27 Darlow
- 02 Taundry
- 04 Butler Booked
- 05 Holden
- 26 Taylor
- 06 Featherstone
- 07 Chambers
- 08 Cuvelier (Hemmings - 58' )
- 24 Baxendale (Williams - 72' )
- 10 Paterson
- 17 Bowerman (Brandy - 77' )
- 01 Grof
- 14 Purkiss
- 22 Downing
- 11 Hemmings
- 16 Jones
- 12 Brandy
- 19 Williams
Live Text Commentary
Full Time The referee blows for the end of the match.90:00 +2:56
Free kick awarded for an unfair challenge on Febian Brandy by Michael Hector. Jamie Paterson restarts play with the free kick.90:00 +1:47 Booking
Booking Andy Butler is given a yellow card.90:00 +0:47
Andy Butler is penalised for handball and concedes a free kick. Direct free kick taken by Matthew Richards.90:00 +0:23
Jermaine Grandison gives away a free kick for an unfair challenge on Nicky Featherstone. Free kick taken by Nicky Featherstone.89:33
Andy Taylor sends in a cross, clearance by Michael Hector.88:42 Substitution
Substitution Jon Taylor leaves the field to be replaced by Tom Bradshaw.87:45
The ball is sent over by Andy Taylor, Michael Hector manages to make a clearance.85:44
Jamie Paterson takes a shot from inside the box clearing the bar.82:01
The assistant referee signals for offside against Mark Wright. Free kick taken by Dean Holden.81:14
The ball is crossed by Richard Taundry, Adam Chambers gives away a free kick for an unfair challenge on Asa Hall. Chris Weale restarts play with the free kick.79:20
Adam Chambers challenges Jon Taylor unfairly and gives away a free kick. Matthew Richards produces a shot on goal direct from the free kick, Karl Darlow makes a save. Outswinging corner taken by Jon Taylor from the right by-line played to the near post, Andy Butler manages to make a clearance.78:23
Free kick awarded for a foul by Jon Taylor on Ashley Hemmings. Andy Butler restarts play with the free kick.77:46
Foul by Mark Wright on Andy Butler, free kick awarded. Free kick taken by Andy Butler.75:35 Substitution
Substitution George Bowerman leaves the field to be replaced by Febian Brandy.75:35 Substitution
Substitution Paul Parry leaves the field to be replaced by Mark Wright.75:35
Shot from close range by Aaron Williams misses to the right of the target.71:49
Aaron Williams takes a shot. Blocked by Lee Collins.70:46
Karl Darlow takes the free kick.70:46 Substitution
Substitution Aaron Williams joins the action as a substitute, replacing James Baxendale.
Booking Marvin Morgan is cautioned.70:28
Free kick awarded for an unfair challenge on Richard Taundry by Marvin Morgan.69:35
Outswinging corner taken right-footed by Jon Taylor, clearance made by Nicky Featherstone.68:21
Paul Parry takes a shot.68:00
George Bowerman takes a shot. Save made by Chris Weale.67:17
Matthew Richards crosses the ball, clearance made by Ashley Hemmings.67:05
Matthew Richards crosses the ball, Dean Holden makes a clearance.64:01
The ball is delivered by Jon Taylor, clearance by Andy Butler.63:08
Foul by Marvin Morgan on Dean Holden, free kick awarded. Free kick taken by Karl Darlow.62:34
Aaron Wildig is caught offside. Karl Darlow takes the free kick.61:28
Marvin Morgan challenges Andy Butler unfairly and gives away a free kick. Andy Butler takes the direct free kick. The referee blows for offside against Jamie Paterson. Indirect free kick taken by Chris Weale.60:27
Ashley Hemmings crosses the ball, Andy Butler takes a shot. Asa Hall fouled by Ashley Hemmings, the ref awards a free kick. Direct free kick taken by Chris Weale.60:07
Corner taken short by Jamie Paterson.58:54
The offside flag is raised against Marvin Morgan. Dean Holden takes the free kick.56:56
Direct free kick taken by Karl Darlow.56:56 Substitution
Substitution Ashley Hemmings replaces Florent Cuvelier.56:56
Jon Taylor takes a shot. Andy Taylor gets a block in. Outswinging corner taken from the right by-line by Jon Taylor, Andy Butler manages to make a clearance. Foul by Jermaine Grandison on Andy Butler, free kick awarded.56:22
Aaron Wildig takes a shot. Dean Holden gets a block in. Jon Taylor takes a outswinging corner from the right by-line to the near post, Andy Butler makes a clearance.54:42
Asa Hall concedes a free kick for a foul on Florent Cuvelier. Direct free kick taken by Andy Taylor.53:23
Jamie Paterson concedes a free kick for a foul on Jermaine Grandison. Chris Weale takes the free kick.52:54
Jon Taylor crosses the ball, clearance made by Andy Butler.52:27
Jamie Paterson crosses the ball, save by Chris Weale.50:44
Effort from just outside the area by Luke Summerfield goes over the target.49:49
The ball is crossed by Matthew Richards, clearance by Nicky Featherstone. Outswinging corner taken from the left by-line by Paul Parry, Andy Butler makes a clearance.48:32
Richard Taundry sends in a cross, Lee Collins manages to make a clearance.48:11
The ball is sent over by Jon Taylor, comfortable save by Karl Darlow.45:01
The referee gets the second half underway.45:00 +2:18 Half time
Half Time The ref blows to signal half-time.45:00 +0:51
Corner taken right-footed by Jamie Paterson, Paul Parry manages to make a clearance.45:00 +0:40
Handball decision goes against Matthew Richards. Richard Taundry takes the free kick.45:00 +0:03
The assistant referee signals for offside against Marvin Morgan. Karl Darlow takes the free kick.38:21
The official flags George Bowerman offside. Chris Weale takes the free kick.36:03
The referee blows for offside. Free kick taken by Chris Weale.31:38
Asa Hall has a shot on goal from outside the area which misses right.30:49
Free kick awarded for a foul by Adam Chambers on Asa Hall. Direct free kick taken by Matthew Richards.29:29
The ball is swung over by Richard Taundry.28:47
The ball is sent over by Andy Taylor, Lee Collins makes a clearance.28:03
Jamie Paterson delivers the ball, Jermaine Grandison gets a block in. Inswinging corner taken from the left by-line by Jamie Paterson, Chris Weale makes a save.24:52
Asa Hall takes a shot. Assist by Asa Hall.24:52 Goal scored
Goal! - Paul Parry - Shrewsbury 1 - 0 Walsall Paul Parry finds the back of the net with a goal from close in to the top left corner of the goal. Shrewsbury 1-0 Walsall.24:21
Marvin Morgan takes a shot. Dean Holden gets a block in. Outswinging corner taken right-footed by Jon Taylor from the right by-line,22:54
The ball is delivered by Jon Taylor, clearance by Andy Butler.19:49
Florent Cuvelier takes a shot. Chris Weale makes a comfortable save.13:40
Florent Cuvelier takes a shot. Chris Weale makes a brilliant save. Outswinging corner taken right-footed by Florent Cuvelier from the right by-line, clearance by Jermaine Grandison. Shot from just outside the box by Andy Taylor goes over the bar.11:58
Free kick awarded for an unfair challenge on Andy Butler by Marvin Morgan. Andy Butler takes the direct free kick.11:33
Handball by Jon Taylor. Richard Taundry takes the free kick.11:08
Florent Cuvelier takes a shot. Save by Chris Weale.8:32
Inswinging corner taken from the left by-line by Jamie Paterson.6:57
Richard Taundry fouled by Paul Parry, the ref awards a free kick. Richard Taundry takes the direct free kick.6:18
Adam Chambers takes a shot. Save by Chris Weale. George Bowerman produces a left-footed shot from the edge of the box and misses to the right of the goal.4:58
Jamie Paterson takes a shot. Save made by Chris Weale.4:01
The referee gives a free kick against Marvin Morgan for handball. Free kick taken by Dean Holden.3:25
The assistant referee signals for offside against George Bowerman. Chris Weale takes the indirect free kick.3:03
Jamie Paterson delivers the ball, blocked by Jon Taylor.0:00
The match has kicked off.
Live data and text provided by our data suppliers