Town made it six games unbeaten as goals from Tamas Priskin and Jason Scotland gave Blues a deserved three points and took the Club into the top three in the Championship.
Roy Keane's side had already hit the woodwork three times before Priskin struck, taking advantage of in-decision by David James in the visitors' goal to put the ball into the empty net just before the hour for his first goal at Portman Road.
The Hungary international, a constant problem to the City defence, had a big hand in Town's second goal on 74 minutes. His 20 yard shot forced James into a low save and Scotland was on hand to mark his home debut with a strike from six yards.
Jon Stead was given a warm reception from the Town fans on his return to Portman Road, the striker making his debut following his move to Bristol City during the week.
Scotland was handed his first start for Blues with Roy Keane opting for Marton Fulop in goal in front of Brian Murphy, who impressed in the midweek Carling Cup win at Crewe.
After a quiet first 10 minutes, the game burst into life as Scotland's trickery and strength won a free-kick on the edge of the box and Grant Leadbitter - the best player on the park in the first 45 minutes - hit the bar with a clever free-kick.
Gareth McAuley headed wide from a Leadbitter free-kick as Town pressed for an opener, Scotland then volleying just wide after linking up with his Trinidad team-mate Carlos Edwards.
Fulop kept out Albert Adomah's strike and the Town 'keeper was called into action soon after to deal with the first of four goalbound efforts from Stead. The former Blue sent Fulop sprawling across to his left to deal with a left foot drive after Brett Pitman had set him up.
At the other end Priskin sent a right foot effort on to the roof of the net and then went even closer, shrugging off his marker and smashing a 10 yard strike against the bar.
Scotland flashed a header wide from another Edwards' cross, Stead lost his marker but couldn't beat Fulop from the angle with Adomah also testing the Town 'keeper in a first-half that Blues shaded.
David Norris threw himself at Jaime Peters' right wing cross straight after the break but was denied at the nearpost before Ivan Sproule was booked for a foul on Leadbitter.
Town hit the woodwork for the third time on 52 minutes, a clever flick from Priskin set up Scotland and the new recruit beat James with a curler only to see the ball hit the top of the bar.
Blues finally got the breakthrough just before the hour, the Hungary international capitalising on in-decision in the City box and reacting quicker than James to slide the ball into the empty net.
City responded with Sproule volleying goalwards - Peters hacking the ball clear before the Robins made a first change with Tom Williams replacing McAllister for the last 20 minutes.
Town extended the lead seconds later, James could only parry Priskin's curler and Scotland was on hand to claw the ball back past two defenders and into the net.
Priskin, bristling with confidence, left defenders in his wake before curling a right footer just wide of James' goal as Town looked far more likely to grab a third then concede.
Shane O'Connor and Ronan Murray were late substitutions, Luke Hyam and Scotland making way as Blues eased their way to three points and 10 in total in the Championship - with the Club waiting until the end of October to equal that number last season.
Town: Fulop, Peters, McAuley, Smith, O'Dea, Edwards, Hyam (O'Connor 84), Leadbitter, Norris, Priskin, Scotland (Murray 90). Subs not used: Murphy, Brown, Eastman, Healy, Griffiths.
Bristol City: James, Hunt, McAllister (T.Williams 71), Fontaine, Stewart, Sproule, Elliott, Cisse, Adomah, Stead, Pitman. Subs not used: Gerken, Carey, Johnson, Clarkson, Campbell-Ryce, Edwards. Booked: Sproule.