The visitors took the lead after 25 minutes when Danny Cadamarteri converted coolly from the penalty spot while everyone else tried to work out why the spotkick had been given.
But Coventry responded well and got the equaliser they deserved seven minutes before half-time. Carl Baker's deep right-wing cross found David McGoldrick peeling off at the back post and the striker made no mistake with his header, directing back across goal.
The visitors went back in front after 57 minutes when, following a scrappy opening to the half and poor defending from Coventry, defender Danny Livesey was allowed to head home from a corner.
McGoldrick and substitute Cody McDonald both struck the post in the closing stages as Robins pushed everyone forward in search of an equaliser, but Coventry could not find one and suffered a fifth straight league defeat.