The hosts took the lead twice but were pegged back by Conor Hourihane's free-kick and Leroy Lita's second in as many games as all the goals came in the first half.
Barnsley kept the same team that got their first win and points of the season at Crewe three days earlier. Sam Winnall had the first chance when he blazed over inside the box on three minutes after good work from Leroy Lita and Luke Berry.
But Coventry took the lead seconds later Josh McQuoid latched onto a long ball and beat Adam Davies in a one-on-one situation.
Davies then made good save from a volley by former Red Jim O'Brien before Winnall cleared a header off the line.
O'Brien then clipped the bar with a 30-yard free-kick on 28 minutes but Hourihane showed him how to do it on 31 when he curled into the left side of the net with home stopper Ryan Allsop wrong-footed.
Keith Treacy's free-kick caused chaos in the box soon after but Cranie's effort was smothered by Allsop. It was the hosts who got the third goal a minute before the break when, after O'Brien's free-kick from the right was headed down, Jordan Clarke volleyed home emphatically.
But the lead latest just a couple of minutes as, in first half injury time, Lita got his second of the week as he headed in following a goalmouth scramble.
Coventry had three fine chances in the first ten minutes after the break as Davies saved well from Clarke and McQuoid, who also headed over when free in front of goal.
The match then quietened down and little else happened apart from headers by Coventry's Reda Johnson and Barnsley's Reece Brown which went well wide.
Most read sport stories