Goals from Elias Kachunga and the predatory Nahki Wells sandwiched an equaliser from prolific Bristol striker Tammy Abraham.
Huddersfield right-back Tommy Smith returned from suspension in place of Martin Cranie in the only change from the side which drew 1-1 at Blackburn last time out.
Bristol midfielder Gary O'Neil was only deemed fit for a place on the bench after damaging a toe.
The match brought on-loan Chelsea strikers Kasey Palmer (Huddersfield) and 12-goal Tammy Abraham (Bristol) up against each other.
But it was German striker Kachunga who opened the scoring in the 10th minute with a diving header after captain Smithy had found space down the right and crossed into the centre of the area.
Wells could have made it 2-0 when Smith crossed low and the Town striker had his first attempt blocked before seeing the second effort saved.
Central defender Aden Flint sent a powerful header a yard wide from Bristol's first corner in the 22nd minute.
Luke Freeman was first in the book for hacking down Rajiv Van La Parra as the Dutchman flew past him. Chris Schindler followed him into the book as Lee Tomlin took a tumble to the anger of Town fans and it enabled Bristol to equalise from the free-kick in the 33rd minute. Flint headed down the initial ball into the area and Aaron Wilbraham set up a simple tap-in for Abraham with Town erroneously claiming offside.
Frank Fielding went full length to keep out a shot from the edge of the area from Van La Parra and Town appeals for a penalty for hands as Flint cleared the ensuing cross from Wells went unheeded. The pair clashed again but again there was no penalty award,
Freeman was then lucky to escape with a lecture for dissent and it remained 1-1 at the break.
Neither side made a change for the second half.
There was controversy almost immediately as Fielding escaped with a booking for handling inches outside his area as Flint failed to get proper contact with a back-header and Wells closed in. Chris Lowe's free-kick was hit straight at the wall.
Fielding was again the central character as Town went back in front in the 58th minute. The goalkeeper failed to control a strong back-pass from Korey Smith and Wells, chasing it down, struck into a wide open net.
Abraham could have equalised but lofted wide a great through ball from Tomlin.
Town remained on the front foot, however, and Bristol had made all three changes before Philip Billing replaced Palmer in the 69th minute.
Fielding made another top-class save down to his left from Aaron Mooy.
Town brought on defensive cover in the later stages as Cranie replaced Van La Parra and Jack Payne came on for Wells in the five minutes of stoppage time.