Match ends, Coventry City 1, Cardiff City 0.
Coventry City added to the pressure on Cardiff City boss Neil Harris with a deserved 1-0 win at St Andrew's.
Tyler Walker's delicate chip after an error from Joe Ralls put the Sky Blues ahead in the second half as the hosts won for the first time since October.
Cardiff failed to respond in a display that will do little to quell growing fan discontent in the Welsh capital.
The result sees Coventry pull clear of the relegation zone on 12 points, while Cardiff slip to 18th on 14 points.
The Bluebirds travelled to Coventry's temporary Birmingham home in search of a first away win since 18 October, having won only three of their opening 12, but in truth never looked like winning this one against Mark Robins' organised side.
Coventry's Jordan Shipley should have opened the scoring with the first chance of the game after 12 minutes following Gustavo Hamer's lofted pass that totally split the Cardiff defence, but Alex Smithies denied him from close range.
Marko Marosi was a virtual spectator in the Coventry goal until 20 minutes when Ralls' cross threatened to creep in, while Cardiff were made to rue a lack of urgency in attack when no-one was on hand to turn home Marlon Pack's flick-on.
The Bluebirds twice came close through Josh Murphy and Ralls but both just missed the target with long-range efforts, while Ryan Giles' effort was well held by Smithies after a quick Coventry counter-attack.
Cardiff thought they had taken the lead on 38 minutes when a scramble in the penalty area resulted in the ball in Coventry's net, but referee Jeremy Simpson adjudged that Kieffer Moore had committed a foul.
It was a disappointing moment for the visitors and one they never seemed to recover from.
The Sky Blues finished the half on the front foot, but Hamer shot high and wide after some patient approach play and Coventry were also on the attack immediately after the restart, but Sean Morrison blocked Shipley's drive after Pack sloppily conceded possession.
Coventry should have taken the lead on 50 minutes when Hamer headed straight at Smithies with time and space in the Cardiff penalty area in a big let-off for the Bluebirds, but the visitors did not learn from their mistakes.
Cardiff were conceding possession far too often and on 54 minutes they paid for another error as Ralls' backpass was too strong and wrong-footed Morrison, allowing Walker to pinch possession and delightfully lob Smithies.
Walker might well have added a second within a minute after Liam Kelly's pass split Cardiff's defence, but he fired wide when one-on-one with Smithies in an effort that prompted Bluebirds boss Harris to scream at his players from the touchline.
The Welsh side switched to 4-4-2 and introduced Robert Glatzel, but chances were at a premium with Moore heading straight at Marosi with 15 minutes remaining following a teasing Harry Wilson corner.
Cardiff's danger was coming almost exclusively from set pieces but the hosts dealt well with Cardiff's aerial bombardment, with Marosi bravely denying Morrison after Moore's flick-on in stoppage time in an incident that left the goalkeeper unable to continue.
Ben Sheaf missed a late chance to double the advantage, but Coventry held on as Robins celebrated his 100th victory with the Sky Blues.
Coventry City manager Mark Robins told BBC CWR:
"It was deserved and hard fought. The most pleasing thing was the clean sheet and the aptitude we showed for the fight. They (Cardiff) have got some really really good players and we limited them to very little.
"Tyler Walker's work rate was phenomenal and his goal was outstanding.
"Cardiff are big and that's the headache... but we defended really well with a much smaller team.
"I'm delighted with my players, they've been brilliant and deserve every bit of credit today, it was much better."
Cardiff City manager Neil Harris told BBC Sport Wales:
"The level of performance was not good enough and the goal sums us up, masters of our own downfall giving the ball away cheaply. The goal was a shambles really and sums us up.
"I was quite aggressive in what I said to the players and showed my disappointment. We've got a talented group of players who need to show they want to play for the club more, in my opinion.
"It has been a disappointing start to the season... you can hear from my tone of voice my disappointment, we don't have the points we want and need to improve quickly.
"We look forward to Saturday (at home to Luton Town) and the opportunity to improve and turn things around.
"Possibly I need to look at changes now. I've been loyal to players and rightly so.... but I've got to look at team selection now and think if some players have shown enough on the pitch to show they deserve to play.
"We all want better as a club, me included."
- 1MarosiSubstituted forWilsonat 90+5'minutes
- 38HamerSubstituted forO'Hareat 78'minutes
- 26ShipleySubstituted forØstigardat 90'minutes
- 4MorrisonBooked at 41mins
- 23WilsonBooked at 85mins
- 21PackSubstituted forVaulksat 67'minutes
- 8RallsSubstituted forM Harrisat 90+3'minutes
- 33HoilettSubstituted forOjoat 59'minutes
- 11MurphySubstituted forGlatzelat 59'minutes
- 29M Harris
- Jeremy Simpson
- Shots on Target
Second Half ends, Coventry City 1, Cardiff City 0.
Attempt missed. Ryan Giles (Coventry City) left footed shot from the left side of the box misses to the right. Assisted by Ben Sheaf.
Substitution, Coventry City. Ben Wilson replaces Marko Marosi because of an injury.
Substitution, Cardiff City. Mark Harris replaces Joe Ralls.
Foul by Sean Morrison (Cardiff City).
Marko Marosi (Coventry City) wins a free kick in the defensive half.
Attempt missed. Kieffer Moore (Cardiff City) header from the centre of the box is close, but misses the top left corner. Assisted by Leandro Bacuna with a cross.
Substitution, Coventry City. Leo Østigard replaces Jordan Shipley.
Sheyi Ojo (Cardiff City) wins a free kick on the left wing.
Foul by Fankaty Dabo (Coventry City).
Offside, Coventry City. Liam Kelly tries a through ball, but Tyler Walker is caught offside.
Sheyi Ojo (Cardiff City) wins a free kick on the left wing.
Foul by Jordan Shipley (Coventry City).
Robert Glatzel (Cardiff City) wins a free kick in the defensive half.
Foul by Ben Sheaf (Coventry City).
Harry Wilson (Cardiff City) is shown the yellow card for a bad foul.
Foul by Harry Wilson (Cardiff City).
Fankaty Dabo (Coventry City) wins a free kick in the defensive half.
Corner, Cardiff City. Conceded by Fankaty Dabo.