Second-half goals from Clayton Donaldson and George Saville clinched the points against a resolute but unadventurous City side.
Donaldson broke the deadlock on the hour-mark with a sizzling low drive that flew inside the near post from the edge of the box.
Chelsea loanee Saville made sure of the points with a side-footed effort from 12 yards that bobbled inside the upright.
Brentford dominated possession for long spells, but the Bantams’ deep defensive line and some wayward finishing kept the scores level.
Will Grigg should have opened the scoring just after the break, but blasted Alan Judge’s driven low cross wide.
Donaldson drifted a header from Adam Forshaw’s free-kick just past the post and should have made it a brace when he somehow skied Marcello Trotta’s near-post cross over the bar from close range.
Jonathan Douglas headed against the bar and Saville forced a point-blank save from City keeper Jon McLaughlin as Brentford piled on the second-half pressure.
City’s only real effort of note came early in the second half when Adam Reach beat three defenders only to fire over the bar.