Walsall recorded their first win in nine games by beating 10-man Exeter.
The home side took the lead when Reuben Reid fired a shot in from close range and Matt Richards nodded in a Martin Devaney cross to double the advantage.
The visitors were reduced to 10 men when Troy Archibald-Henville was sent off for a second yellow card.
Ryan Harley got one back for Exeter when he drilled in a low shot, and John O'Flynn almost snatched a late point when his volley clipped the bar.
Exeter City manager Paul Tisdale told BBC Radio Devon: "I'm really upset with 10 minutes of our performance.
"I think today was a great example of playing extremely well, and completely throwing the game away with 10 minutes of poor focus and poor decision.
"We lost focus, we felt sorry for ourselves, we conceded a second goal, then we have a man sent off through pure naivety, and the next thing we have is the biggest uphill battle we've had for a long time."
90:00+5:53 The referee blows for the end of the match.
90:00+4:44 Handball decision goes against John O'Flynn. Free kick taken by Andrew Davies.
90:00+2:14 Unfair challenge on Ryan Harley by Ryan McGivern results in a free kick. Ryan Harley takes the direct free kick.
90:00+0:56 Ryan Harley delivers the ball, John O'Flynn has an effort at goal from deep inside the penalty box that bounces off the post.
90:00+0:44 Ryan Harley takes a outswinging corner.
90:00+0:20 Ryan Harley decides to take the corner short. Ryan Harley sends in a cross.
88:18 John O'Flynn gives away a free kick for an unfair challenge on Ryan McGivern. Jon Brain takes the direct free kick.
86:32 Substitution Paul Marshall replaces Matthew Richards.
86:15 Substitution Steve Jones joins the action as a substitute, replacing Julian Gray.
81:40 Substitution Alex Nicholls replaces Jonathan Macken.
77:00 Julian Gray challenges Scott Golbourne unfairly and gives away a free kick. Centre by Ryan Harley, Header on goal by James
Dunne from inside the box goes harmlessly over the target.
76:18 Short corner taken by Ryan Harley from the right by-line.
72:05 Jonathan Macken is flagged offside by the assistant referee. Indirect free kick taken by Richard Duffy.
67:57 Scott Golbourne fouled by Martin Devaney, the ref awards a free kick. Free kick taken by Paul Jones.
67:57 Substitution Liam Sercombe comes on in place of Daniel Nardiello.
67:04 The referee blows for offside. Indirect free kick taken by Andrew Davies.
64:37 The assistant referee signals for offside against John O'Flynn. Free kick taken by Jon Brain. Free kick awarded for a foul
by Billy Jones on Jonathan Macken. Martin Devaney takes the free kick. Headed effort on goal by Emmanuele Smith from inside
the penalty box misses to the right of the target.
62:11 Headed effort from inside the area by Ryan Harley misses to the right of the goal.
61:04 Substitution Richard Logan leaves the field to be replaced by John O'Flynn.
59:48 Richard Logan is ruled offside. Jon Brain restarts play with the free kick.
58:29 Unfair challenge on Scott Golbourne by Martin Devaney results in a free kick. Billy Jones takes the free kick.
56:37 Inswinging corner taken right-footed by Martin Devaney.
54:59 Drilled right-footed shot by Ryan Harley. Blocked by Emmanuele Smith.
52:09 GOAL - Ryan Harley:Walsall 2 - 1 Exeter Ryan Harley grabs a goal from just outside the area to the bottom left corner of the goal. Walsall 2-1 Exeter.
50:39 Ryan McGivern takes a shot. Save made by Paul Jones.
49:32 Reuben Reid produces a left-footed shot from deep inside the penalty box which goes wide of the right-hand upright.
47:09 James Dunne fouled by Reuben Reid, the ref awards a free kick. Paul Jones takes the free kick.
46:22 Daniel Nardiello is flagged offside by the assistant referee. Free kick taken by Aaron Lescott.
45:01 The referee blows his whistle to start the second half.
45:00+2:11 The match has reached half-time.
45:00+1:44 Daniel Nardiello is ruled offside. Jon Brain takes the direct free kick.
45:00+0:54 Martin Devaney takes a shot. Richard Duffy gets a block in.
43:26 Foul by Troy Archibald-Henville on Reuben Reid, free kick awarded. Martin Devaney restarts play with the free kick.
43:26 Sent off Troy Archibald-Henville is shown a red card for second bookable offence.
42:06 Martin Devaney provided the assist for the goal.
42:06 GOAL - Matthew Richards:Walsall 2 - 0 Exeter Matthew Richards grabs a headed goal from inside the six-yard box. Walsall 2-0 Exeter.
40:57 Billy Jones gives away a free kick for an unfair challenge on Martin Devaney. Free kick crossed left-footed by Martin Devaney,
clearance by Billy Jones.
40:57 Substitution Jamie Cureton goes off and Daniel Nardiello comes on.
39:02 Effort from the edge of the area by Martin Devaney goes wide of the right-hand post.
37:53 Unfair challenge on Andrew Davies by Troy Archibald-Henville results in a free kick. Free kick taken by Jon Brain.
37:21 Booking The referee shows Troy Archibald-Henville a yellow card for unsporting behaviour.
37:06 Booking Booking for Andrew Davies for unsporting behaviour.
35:58 Billy Jones takes a inswinging corner.
34:14 Emmanuele Smith concedes a free kick for a foul on Jamie Cureton. Direct strike on goal from the free kick comes in from Ryan
Harley, comfortable save by Jon Brain.
33:20 Shot by Reuben Reid. Save made by Paul Jones.
31:21 Jonathan Macken provided the assist for the goal.
31:21 GOAL - Reuben Reid:Walsall 1 - 0 Exeter Reuben Reid scores a goal from deep inside the penalty area to the bottom left corner of the goal. Walsall 1-0 Exeter.
29:05 Julian Gray gives away a free kick for an unfair challenge on Ryan Harley. Free kick taken by Richard Duffy.
27:15 Effort on goal by Reuben Reid from 35 yards missed to the left of the target.
26:23 Headed effort from deep inside the area by Andrew Davies misses to the right of the goal.
25:34 Free kick awarded for a foul by David Noble on Jonathan Macken. Ryan McGivern takes the direct free kick.
24:03 Ryan Harley takes a inswinging corner from the right by-line played to the near post.
22:25 The referee blows for offside. Paul Jones restarts play with the free kick.
21:08 Effort on goal by Matthew Richards from a long way out goes over the bar.
20:08 Matthew Richards takes a shot. Richard Duffy gets a block in.
17:07 Jamie Cureton fouled by Aaron Lescott, the ref awards a free kick. The ball is sent over by Billy Jones, Headed effort from
inside the area by James Dunne misses to the right of the target.
16:06 Jonathan Macken challenges James Dunne unfairly and gives away a free kick. David Noble takes the free kick.
14:43 Richard Logan is ruled offside. Jon Brain restarts play with the free kick.
10:53 Shot from a long way out by Jamie Cureton goes wide of the left-hand upright.
8:37 Scott Golbourne fouled by Martin Devaney, the ref awards a free kick. Paul Jones takes the direct free kick.
6:41 Corner taken right-footed by Martin Devaney, clearance by Scott Golbourne.
4:40 Inswinging corner taken left-footed by Matthew Richards played to the near post.
3:43 Jamie Cureton takes a shot from just inside the penalty box which clears the bar.
3:10 Reuben Reid handles the ball and concedes a free kick. Free kick taken by Billy Jones.
0:04 Unfair challenge on Reuben Reid by Scott Golbourne results in a free kick. Free kick taken by Aaron Lescott. Troy Archibald-Henville
fouled by Andrew Davies, the ref awards a free kick. Paul Jones takes the direct free kick.
0:00 The match gets underway.
Live text and data provided by The Press Association.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.