Jamie Paterson and Craig Westcarr both scored twice as play-off chasing Walsall thrashed Coventry to stretch their unbeaten run to 12 games.
The Saddlers dominated from the outset and led when Paterson beat his man and fired the ball home after a fine move.
Westcarr made it 2-0 from the spot when Aaron Martin felled James Baxendale.
Coventry had Jordan Stewart sent off for a second yellow card, and Westcarr added a third with his head before teeing up Paterson for the fourth.
Walsall are in eighth place, three points and two places off the top six but all the sides in the play-off positions have games in hand.
The Sky Blues have now slipped to 14th spot.
VIEW FROM THE DRESSING ROOM
Coventry City manager Steven Pressley told BBC Coventry & Warwickshire:
"I think that there were many good things in our play but at key moments the wrong decisions were made.
"It was our desire to keep going forward which ultimately cost us. We were so desperate to get ourselves back in the game it cost us in the counter-attacks.
"On the whole, with the exception of one or two players, the attitude was brilliant. There are still one or two players who need to come up to the plate in terms of the work ethic for the group. Today there were one or two who still have to come up to the plate.
"Personnel need to work to the ethic of the group. We need to make more of our opportunities in the final third."
Live Text Commentary
Full Time The referee brings the game to a close.89:17
Ashley Hemmings concedes a free kick for a foul on Jordan Clarke. John Fleck restarts play with the free kick.88:56
Jamie Paterson takes a shot. Save made by Joe Murphy.87:55 Substitution
Substitution Ashley Hemmings is brought on as a substitute for Febian Brandy.87:31 Substitution
Substitution James Baxendale goes off and Romaine Sawyers comes on.86:50
Assist by Craig Westcarr.86:50 Goal scored
Goal! - Jamie Paterson - Walsall 4 - 0 Coventry Jamie Paterson fires in a goal from inside the box to the bottom right corner of the goal. Walsall 4-0 Coventry.84:14
Craig Westcarr takes a shot. William Edjenguele gets a block in.81:44
Effort on goal by Callum Wilson from inside the box misses to the right of the target.81:25
Free kick awarded for a foul by Andy Taylor on Carl Baker. Carl Baker restarts play with the free kick.80:13
Corner from the left by-line taken by John Fleck, Sam Johnstone makes a comfortable save.79:34
Sam Mantom has an effort at goal from outside the area which goes wide left of the target.76:41
Jamie Paterson takes a shot. Joe Murphy makes a save.76:05
Febian Brandy is caught offside. Joe Murphy takes the free kick.75:43
Jamie Paterson takes the direct free kick.75:43 Booking
Booking Cyrus Christie is cautioned by the ref for unsporting behaviour.75:34
Foul by Cyrus Christie on Craig Westcarr, free kick awarded.73:10
Assist by Jamie Paterson.73:10 Goal scored
Goal! - Craig Westcarr - Walsall 3 - 0 Coventry Craig Westcarr grabs a headed goal from close in. Walsall 3-0 Coventry.71:56
Foul by Steven Jennings on Febian Brandy, free kick awarded. Direct strike on goal from the free kick comes in from Jamie Paterson, save made by Joe Murphy.
Free kick taken by Andy Taylor.71:38 Booking
Booking The referee shows Jordan Clarke a yellow card.71:26
Unfair challenge on Febian Brandy by Jordan Clarke results in a free kick.70:25
Clearance made by Cyrus Christie.70:25 Booking
Booking Craig Westcarr is cautioned.70:03
Craig Westcarr takes the inswinging corner,66:10 Substitution
Substitution (Coventry) makes a substitution, with Jordan Clarke coming on for Franck Moussa.66:10 Substitution
Substitution Adam Barton goes off and Steven Jennings comes on.64:23
Free kick taken by James Chambers.64:23 Dismissal
Dismissal Jordan Stewart sent from the field by the ref for second bookable offence.64:15
Free kick awarded for a foul by Jordan Stewart on Febian Brandy.63:09
Effort on goal by Adam Barton from just inside the area clears the bar.62:33
Foul by James Chambers on Franck Moussa, free kick awarded. Direct free kick taken by Carl Baker.61:54 Substitution
Substitution Callum Ball leaves the field to be replaced by Callum Wilson.59:08
Foul by Jamie Paterson on Carl Baker, free kick awarded. Cyrus Christie takes the direct free kick.58:22
Unfair challenge on John Fleck by Febian Brandy results in a free kick. Direct free kick taken by Callum Ball.55:48
Free kick taken by Andy Butler.55:48 Booking
Booking The referee shows Callum Ball a yellow card.55:40
Free kick awarded for a foul by Callum Ball on Adam Chambers.54:56
Febian Brandy has an effort at goal from outside the penalty area which goes wide right of the goal.53:24 Goal scored
Goal! - Craig Westcarr - Walsall 2 - 0 Coventry Placed penalty scored by Craig Westcarr. Walsall 2-0 Coventry.52:19
Aaron Martin gives away a Penalty for an unfair challenge on James Baxendale.50:38
Free kick awarded for an unfair challenge on Febian Brandy by Callum Ball. Sam Johnstone takes the free kick.48:19
Craig Westcarr gives away a free kick for an unfair challenge on John Fleck. Free kick taken by William Edjenguele.47:38
Shot from just outside the area by Adam Barton misses to the left of the target.46:34
Corner taken by John Fleck from the right by-line to the near post, save made by Sam Johnstone.46:21
Carl Baker takes a shot. Save made by Sam Johnstone.45:01
The referee gets the second half started.45:00 +1:13 Half time
Half Time The half-time whistle blows.44:55
Free kick awarded for an unfair challenge on John Fleck by Adam Chambers. Free kick taken by John Fleck.43:39
Shot from 30 yards by John Fleck. Blocked by Paul Downing.42:41
Inswinging corner taken by Andy Taylor, save by Joe Murphy.42:14
Andy Taylor takes a shot. Save made by Joe Murphy.41:33
Jamie Paterson takes the direct free kick.41:33 Booking
Booking Jordan Stewart goes into the referee's book.41:14
Free kick awarded for a foul by Jordan Stewart on Adam Chambers.39:06
Callum Ball concedes a free kick for a foul on Andy Butler. Free kick taken by Andy Butler.38:48
Effort on goal by Callum Ball from deep inside the penalty area misses to the right of the target.38:31
Carl Baker takes a shot. Sam Johnstone makes a save.36:59
Foul by Febian Brandy on Jordan Stewart, free kick awarded. Direct free kick taken by Jordan Stewart.36:35
Corner taken by John Fleck from the right by-line played to the near post, Paul Downing makes a clearance.36:22
Franck Moussa has an effort at goal. Save made by Sam Johnstone.32:57
Assist on the goal came from James Chambers.32:57 Goal scored
Goal! - Jamie Paterson - Walsall 1 - 0 Coventry Jamie Paterson finds the net with a goal from deep inside the penalty box to the bottom left corner of the goal. Walsall 1-0 Coventry.32:16
The ball is sent over by James Chambers,29:01
Carl Baker concedes a free kick for a foul on Adam Chambers. Andy Taylor restarts play with the free kick.27:09
Inswinging corner taken right-footed by Craig Westcarr, Joe Murphy makes a save.26:26
Inswinging corner taken by Andy Taylor from the right by-line played to the near post, William Edjenguele makes a clearance.25:11
Unfair challenge on James Baxendale by Jordan Stewart results in a free kick. James Baxendale restarts play with the free kick.24:40
Jamie Paterson takes a shot. Carl Baker gets a block in.23:38
The assistant referee signals for offside against Callum Ball. Free kick taken by Sam Johnstone.22:01
William Edjenguele has a header from deep inside the six-yard box and clears the crossbar.21:21
Corner taken left-footed by John Fleck to the near post, clearance made by Sam Mantom.19:48
Adam Barton gives away a free kick for an unfair challenge on James Baxendale. Andy Taylor takes the free kick.17:22
Corner taken by John Fleck from the right by-line, Sam Johnstone makes a comfortable save.16:23
James Baxendale produces a right-footed shot from just outside the box that misses to the right of the net.13:14
Andy Taylor has an effort at goal from 20 yards. Save by Joe Murphy.12:46
Adam Barton gives away a free kick for an unfair challenge on Craig Westcarr. Jamie Paterson takes the direct free kick.11:52
Callum Ball gives away a free kick for an unfair challenge on Adam Chambers. Direct free kick taken by Sam Johnstone.9:55
Foul by Sam Mantom on Carl Baker, free kick awarded. Direct free kick taken by Adam Barton.8:55
Shot from outside the area by Carl Baker misses to the left of the target.8:23
Callum Ball takes a shot. Save by Sam Johnstone.6:27
Foul by Sam Mantom on Carl Baker, free kick awarded. John Fleck takes the direct free kick.3:20
Callum Ball concedes a free kick for a foul on Andy Butler. Andy Butler takes the direct free kick.0:00
The referee gets the game started.
Live data and text provided by our data suppliers