Match ends, Walsall 2, Coventry City 1.
Walsall ended Coventry's 100% start to the season, climbing to second in League One with a goal in each half.
Walsall led on 40 minutes when Milan Lalkovic threaded in Anthony Forde to fire home from inside the box.
The Saddlers went 2-0 up seven minutes after the break through Tom Bradshaw's sweet strike into the bottom corner.
Coventry quickly got one back with on-loan Norwich striker Jacob Murphy's spectacular 25-yard curler into the top corner, but it was not enough.
|Bubbling Bradshaw among the goals again|
|Tom Bradshaw, Walsall's top scorer last season with 20 goals in all competitions, has already struck five times in as many games this season.|
In fact, the home side came close to extending their lead 10 minutes from time when defender Andy Taylor's powerful effort from 20 yards shaved the post.
The Sky Blues had been handicapped by an early injury blow when 18-year-old striker James Maddison had to be substituted by Murphy after just four minutes, having suffered a leg injury stretching into a challenge.
Murphy had his sweeping shot from the left superbly saved one-handed by Saddlers keeper Neil Etheridge, but the home side were mainly on top.
Skipper Sam Ricketts was forced to clear off his own line, while Lalkovic's shot from an acute angle bounced off the woodwork.
Walsall boss Dean Smith told BBC WM:
"We just have to keep our feet on the floor, and take one game at a time.
"Milan (Lalkovic) was nailed on for this game, he loves playing in this kind of atmosphere as we have all seen before.
"Anthony Forde has been doing really well in training and when he's come on in games.
Sky Blues manager Tony Mowbray told BBC Coventry & Warwickshire:
"Too many underperformed from the standard they have set themselves. We lost some poor goals and weren't as fluent as we have been. I'm disappointed for the fans who turned out in huge numbers yet again.
"I'm conscious of trying not to make excuses, but we had three or four players carrying injuries. The positive is that, over the next few games, we have breathers in between matches.
"We know there's going to be some adversity along the way. We can't just keep winning every game: a defeat was coming. The strength of any team is how we bounce back from a defeat."
- 15LalkovicSubstituted forCookat 73'minutesBooked at 90mins
- 12FordeSubstituted forMorrisat 66'minutes
- 2WillisSubstituted forPhillipsat 53'minutes
- 4VincelotBooked at 65mins
- 10MaddisonSubstituted forMurphyat 7'minutes
- 11O'BrienSubstituted forMorrisat 45'minutes
- Jeremy Simpson
- Shots on Target
Second Half ends, Walsall 2, Coventry City 1.
Foul by Chris Stokes (Coventry City).
Kieron Morris (Walsall) wins a free kick in the defensive half.
Hand ball by Reda Johnson (Coventry City).
Ruben Lameiras (Coventry City) wins a free kick on the left wing.
Foul by Jordan Cook (Walsall).
Attempt missed. Kieron Morris (Walsall) left footed shot from outside the box is close, but misses to the right.
Foul by Sam Ricketts (Coventry City).
Andy Taylor (Walsall) wins a free kick in the defensive half.
Attempt blocked. Sam Ricketts (Coventry City) right footed shot from outside the box is blocked.
Attempt saved. Ruben Lameiras (Coventry City) right footed shot from outside the box is saved in the centre of the goal.
Foul by Romain Vincelot (Coventry City).
Adam Chambers (Walsall) wins a free kick in the attacking half.
Hand ball by John Fleck (Coventry City).
Jason Demetriou (Walsall) hits the right post with a left footed shot from long range on the left.
Corner, Walsall. Conceded by Sam Ricketts.
Attempt blocked. Sam Mantom (Walsall) right footed shot from outside the box is blocked.
Substitution, Walsall. Jordan Cook replaces Milan Lalkovic.
Attempt missed. Milan Lalkovic (Walsall) right footed shot from outside the box misses to the left from a direct free kick.