The Bantams squandered several chances in the second half after going a goal behind to a super strike by substitute Andy Rose.
And they finished the match with ten men as Steven Davies was sent off, leaving them looking over their shoulder at the chasing pack with three games to go.
Both sides started brightly but midway through the opening period City ‘keeper Ben Williams looked a little shaky having seen his late error cost his side two points at the weekend. He dropped the ball in his own box after failing to gather a free-kick, but was grateful to his defence as they cleared up the mess. The Sky Blues had a big shout for a penalty turned down just before the break as Ruben Lameiras went down under a challenge from City captain Stephen Darby.
An inspired double substitution by Coventry manager Tony Mowbray paid instant dividends just before the hour mark.
City failed to deal with a long ball down the middle and Rose lashed home off the underside of the bar from the edge of the box.
Bradford’s best chance came as Billy Clarke dragged wide, and they finished the match a man light as Davies appeared to kick out at Jack Stephens off the ball.
Coventry: Charles-Cook, Phillips, Martin, Stephens, Ricketts, Vincelot, Fleck, Lameiras (Bigirimana 59), Maddison (Tudgay 70), Cole (Rose 59), Armstrong. Unused substitutes: Lorentzson, Murphy, Fortuné, Addai.
Bradford: Williams, Darby, N Clarke (Hanson 86), Burke, Meredith, McMahon (Morais 70), Cullen, Evans, Reid, B Clarke (Davies 69), Proctor. Unused substitutes: Morris, Thorpe, McArdle, Cracknell.
Referee: R Lewis (Shropshire).