Dominic Samuel opened the scoring early on before second-half strikes from Richie Wellens, Jonson Clarke-Harris and Harry Forrester condemned City to their first defeat in four matches.
Chris Stokes then went so close to a second when he headed Grant Ward's corner from the right inches wide of the right post.
City then went closer by hitting the post, after O'Brien released Frank Nouble down the left and the striker showed his strength shrugging off his man before finding Adam Barton who hit the upright under pressure from close range,
After their dominant start the Sky Blues were lucky not to concede the equaliser just before the half-hour mark when Nathan Tyson got free eight-yards but he bent his shot only inches wide of the right-post from what looked a certain goal.
Jim O'Brien was almost sent off as he was booked and then made a late challenge on Forrester but the referee, after a lengthy lecture, gave the skipper a final warning five minutes before the break.
But it was Adam Barton that was subbed at half-time for Sanmi Odelusi and the visitors got the leveller just five minutes after the interval, when a neat one-two in the area found Richie Wellens and he slammed the ball in past Lee Burge from close range.
Aaron Phillips then came on for Nouble during a dull patch in the game, but Rovers had their second 72 minutes, when substitute and former Sky Blue Clarke-Harris latched on to a defensive error and had his initial effort well saved by Lee Burge. But the striker was first to the rebound from eight-yards to tap in the visitors second.
Simeon Jackson then came on for O'Brien but Forrester secured the three-points for Rovers with six minutes to go after another defensive mistake let in Curtis Main down the right and he pulled the ball back to Forrester who had an easy tap in inside the six-yard box.
Coventry City: Burge, Willis, Pennington, Martin, Stokes, Fleck, Ward, Barton, O'Brien (Jackson 78), Nouble (Phillips 68), Samuel.
Subs: Charles-Cook, Webster, Phillips, Finch, Turgott.
Doncaster Rovers: Bywater (GK), Furman, Razak (Forrester 22), Main (Robinson 89), McCullough, Tyson (Clarke-Harris 62), Butler (C), Stevens, Wellens, Wabara, Bennett.
Subs: Marosi, Evina, McCombe, Middleton.
Yellow cards: Nouble, Razak, O'Brien, Clarke-Harris.
Referee: C Boyeson