Coventry-born Luke Leahy scored two stoppage-time goals to give the Saddlers a remarkable comeback win over the Sky Blues.
Luke Thomas’ first-half strike looked to have clinched victory for City but Leahy’s late brace secured the most improbable of wins.
Walsall ran out winners in the FA Cup first-round meeting a month prior – but it was the Sky Blues who started the stronger.
Coventry captain Liam Kelly had the game’s first attempt on five minutes but his long-range left-footed drive was too central and comfortable for keeper Liam Roberts.
City opened the scoring after 18 minutes when Junior Brown’s far-post cross fell to Luke Thomas, who took a touch before drilling under Roberts at his near post.
Thomas almost added another when he drove infield from the right but his low shot was held by Roberts.
The hosts had offered very little going forward but had strong penalty appeals waved away when Andy Cook ran clear before being brought down.
Dean Keates’ men looked brighter after the restart and could have drawn level when Andy Cook teed up Isaiah Osbourne, but his powerful strike was always rising.
Andy Cook’s tame looping header was easy for keeper Lee Burge, who then spilled Russell Martin’s dipping 25-yard volley before claiming at the second attempt.
The Saddlers made a double substitution midway through the second half, bringing on wingers Zeli Ismail and Josh Ginnelly and reverting to a 4-4-2 formation.
The latter was immediately involved, swinging in a corner which Cook met in the air but Jordan Shipley was in the right place to hack clear off the line.
Coventry created a rare chance on the break as ex-Saddler Amadou Bakayoko released Shipley, whose firm left-footed shot was kept out by Roberts’ legs.
City should have made it 2-0 with ten minutes left as Jonson Clarke-Harris’ low centre came through to Thomas, unmarked, but Roberts miraculously blocked with his legs from point-blank range.
The visitors missed another glaring chance as Clarke-Harris raced clear from a Walsall corner but the substitute pulled his left-footed effort wide of the far post.
Walsall pushed for an equaliser in the dying stages, with Burge tipping a Nicky Devlin effort onto the roof of the net.
But the Saddlers did draw level in the first minute of added time as Roberts’ long ball was missed by Burge and headed home by Leahy.
And, quite incredibly, Walsall scored again in the 94th minute when Devlin was felled in the penalty area, with Leahy converting the resulting penalty.
Saddlers team (4-3-3): L Roberts; Devlin, Fitzwater (Ismail 69’), Guthrie, Leahy; Osbourne, Martin, Kinsella; Gordon (Ginnelly 69’), Cook, Ferrier.
Subs not used: Dunn, Johnson, Wilson, Ronan, Morris.
Coventry team (4-4-2): Burge; Sterling, Davies, Willis, Brown; Thomas, Bayliss (Ogogo 81'), Kelly, Shipley; Chaplin (Clarke-Harris 63’), Bakayoko.
Subs not used: Addai, Grimmer, Doyle, Hiwula, Hyam.