The Sky Blues were defeated in the final minutes of play at Banks’s Stadium in the Sky Bet League One.
Luke Thomas struck in the 18th minute after smashing the ball beyond Liam Roberts at his near-post.
However, despite City’s first-half authority, the Saddlers made it a tough contest in the second period of the game and grabbed two late goals through Luke Leahy.
Mark Robins made multiple changes to his starting eleven, with five changes from defeat at Fleetwood eleven days ago.
Tom Davies, Liam Kelly and Amadou Bakayoko all started, as well as Dujon Sterling and Jordan Shipley who both came back from injury troubles.
In fact, it was Kelly who had the first opportunity of the afternoon just five minutes in, but his strike was saved by Roberts after Thomas rounded three Walsall defenders.
A chance then fell to Andy Cook who swivelled and managed to get a shot away, however Junior Brown managed to get back and blocked expertly to prevent the Saddlers striker.
The Sky Blues then went down the other end, and after a few crosses into the box Thomas made his mark and opened the score-line.
The 19-year-old found himself at the back post as Brown swung in his delivery and as the ball fell to his feet from Jon Guthrie’s defensive header, the on-loan winger controlled the ball perfectly and immediately struck home past Roberts’ nearside.
Minutes later Thomas had another chance to score after a skilful combination with Tom Bayliss, the strike though was unable to beat Roberts this time who held well.
Although the weather worsened with every second of the first-half ticking, the confidence oozing through Thomas’ veins continued as he drifted seamlessly past Leahy and then past two other Saddlers defenders, however as the winger let rip Russell Martin stood in the way to stop the ball from smashing into the net for the second time of the afternoon.
The Saddlers did have one last chance before half-time, however Jordan Willis dealt with Cook as he charged through on goal.
Amadou Bakayoko then leapt brilliantly and headed towards Conor Chaplin before the whistle, but the latter couldn’t stretch far enough to acquire any contact on the ball.
Morgan Ferrier wriggled his way through the Sky Blues defence at the start of the second-half, but Brown one again was there to deflect the ball away.
As City countered, Bakayoko out-strengthened Devlin and drilled a ball low into the box towards Chaplin who was unable to nip in front of Jack Fitzwater to flick on.
Devlin then had a chance of his own, the shot however was off target and went out of play for a throw-in.
Walsall started to establish a foothold in the game and Isaiah Osbourne created an opening as he snuck away from Brown, however his right-footed effort was blazed high over the crossbar.
A couple more chances came in quick succession for the Saddlers, as a Cook header was comfortably held by Lee Burge and a Martin half-volley caused problems for the City goalkeeper who initially saved and managed to gather the ball accordingly at the second attempt.
Jordan Shipley was called into action inside his own penalty area and consequently booted the ball off of the line as Devlin headed towards goal.
A flurry of openings then came for the Sky Blues as they defended resolutely with Bakayoko unable to gain good contact on a shot after acrobatically fashioning a chance of his own, and a rifled Shipley effort was tipped away.
With ten minutes to go all three points could’ve been sealed for City. Jonson Clarke-Harris battled his way through on the left-hand side and fired in a cross towards Bakayoko who couldn’t control, the ball then fell to Thomas who followed in but he couldn’t squeeze a shot past Roberts.
Clarke-Harris was sent through on goal minutes later and did ever so well to keep in front of his man, however the substitute’s strike flashed wide.
With the Sky Blues missing their chances Walsall took theirs as Burge went to punch the ball away, but Leahy beat him to it and the ball trickled into the back of the net.
With just seconds to go it was heartbreak for City as the Saddlers scored a second.
Abu Ogogo brought down Devlin inside the penalty area and Leahy dispatched the spot-kick for his second goal of the day.
Goals: Luke Thomas, Luke Leahy (x2)
Yellows: Tom Bayliss, Isaiah Osbourne, Luke Thomas, Nicky Devlin, Lee Burge, Abu Ogogo
Sky Blues Xl: Lee Burge (GK), Dujon Sterling, Jordan Willis, Tom Davies, Junior Brown, Liam Kelly (C), Tom Bayliss (Abu Ogogo 81’), Jordan Shipley, Luke Thomas, Conor Chaplin (Clarke-Harris 63’), Amadou Bakayoko.
Unused Subs: Corey Addai (GK), Dom Hyam, Jack Grimmer, Michael Doyle, Jordy Hiwula.
Walsall XI: Liam Roberts (GK), Luke Leahy (C), Jon Guthrie, Nicky Devlin, Andy Cook, Liam Kinsella, Morgan Ferrier, Jack Fitzwater (Zeli Ismail 69’), Josh Gordon (Josh Ginnelly 69’), Isaiah Osbourne, Russell Martin.
Unused Subs: Chris Dunn (GK), Kieron Morris, Connor Johnson, Kane Wilson, Connor Ronan.