The Bluebirds dominated the match and took the lead with 37 minutes gone when Robins captain Jamie McCombe turned Adam Matthews' cross into his own net.
In-form Chopra grabbed his fifth goal in three games to double Cardiff's lead on the stroke of half-time before Gavin Rae wrapped up the points in the second half.
The result moved Dave Jones' side above Middlesbrough on goal difference while Bristol City slip down to 10th.
The Bluebirds started the game well and had the first meaningful chance with 14 minutes gone when Chris Burke received the ball from Chopra and burst past McCombe and Bristol City goalkeeper Dean Gerken before Liam Fontaine got back to make a superb block.
Moments later Joe Ledley got on the end of Peter Whittingham's lofted ball into the box but Gerken got out quickly to make a good save.
The Bluebirds continued to push forward in search of the opener and a poor clearance from Gerken fell straight to Paul Quinn who tried his luck from distance, only for Gerken to get back and make the save.
However, the visitors did not escape minutes later when Burke played Matthews in down the right and his low cross was inadvertently diverted into his own net by the luckless McCombe.
McCombe nearly made amends almost immediately when he got on the end of Jamie McAllister's free-kick but David Marshall made a superb stop to keep out his glancing header before Marvin Elliott fired the rebound against the outside of the post.
Cardiff made the visitors pay for that missed opportunity with half-time approaching when Burke played in Chopra, who controlled well and lobbed the ball over Gerken to continue his purple patch in front of goal.
The home side continued to dominate after the break with Jay Bothroyd and Chopra causing the Bristol City defence all sorts of problems.
However the Robins gradually began to get more of the possession and John Akinde knocked the ball down for Nicky Maynard, who fired in a powerful volley from 20 yards that was well dealt with by Marshall.
With 66 minutes gone and the visitors starting to threaten Cardiff grabbed the crucial third goal when Burke embarked on another fine run down the right and picked out Rae, who slotted the ball past Gerken from close range.
Bristol City did try to find a way back and Akinde tested Marshall late on - but Cardiff comfortably held on for a thoroughly deserved three points.