Match ends, Walsall 3, Coventry City 2.
Walsall survived a Coventry fightback to triumph 3-2 in a pulsating FA Cup derby marred by a pitch invasion and bottle-throwing incident.
Referee Thomas Bramall threatened to abandon the game after Coventry fans invaded the pitch and a bottle was thrown following Luke Thomas' superb equaliser for the Sky Blues.
City had deservedly fought back from 2-0 down but Nicky Devlin collected Liam Kinsella's through-ball to lash Walsall's 77th-minute winner into the top corner.
The Saddlers first led on 12 minutes as Zeli Ismail's inventive backheel found Andy Cook six yards out and he turned to poke past City keeper Lee Burge.
Walsall doubled their lead on 28 minutes as Josh Ginnelly pounced on Jordan Thompson's under-hit backpass to prod beyond Burge.
City pulled one back five minutes later as Jonson Clarke-Harris blocked Jon Guthrie's clearance and raced clear to slot home.
Thomas' excellent 20-yard volley crept under Roberts to make it 2-2 on 56 minutes but Walsall rallied and Cook's looping header hit the bar before Devlin's winner.
Report supplied by the Press Association.
- 34MartinBooked at 76mins
- 11GinnellySubstituted forMorrisat 90+1'minutes
- 9CookBooked at 87mins
- 3MasonBooked at 75mins
- 26ShipleyBooked at 62mins
- 16OgogoSubstituted forBaylissat 71'minutes
- 23ThomasBooked at 57minsSubstituted forJonesat 71'minutes
- 11Hiwula-MayifuilaSubstituted forChaplinat 81'minutes
- Thomas Bramall
- Shots on Target
Second Half ends, Walsall 3, Coventry City 2.
Foul by Liam Kinsella (Walsall).
Tom Bayliss (Coventry City) wins a free kick in the defensive half.
Substitution, Walsall. Kieron Morris replaces Josh Ginnelly because of an injury.
Corner, Walsall. Conceded by Dominic Hyam.
Attempt blocked. Josh Gordon (Walsall) right footed shot from the right side of the box is blocked.
Andy Cook (Walsall) is shown the yellow card.
Foul by Jonson Clarke-Harris (Coventry City).
George Dobson (Walsall) wins a free kick on the right wing.
Hand ball by Jonson Clarke-Harris (Coventry City).
Foul by Jordon Thompson (Coventry City).
Josh Ginnelly (Walsall) wins a free kick on the left wing.
Substitution, Coventry City. Conor Chaplin replaces Jordy Hiwula-Mayifuila.
Attempt missed. Jordan Shipley (Coventry City) left footed shot from outside the box misses to the left.
Foul by Nicky Devlin (Walsall).
Tom Bayliss (Coventry City) wins a free kick on the left wing.
Josh Ginnelly (Walsall) wins a free kick on the right wing.
Foul by Jodi Jones (Coventry City).
Goal! Walsall 3, Coventry City 2. Nicky Devlin (Walsall) right footed shot from the right side of the box to the top left corner. Assisted by Liam Kinsella.