Although Graham Dorrans had given the visitors the lead midway through the first half, they failed to keep up the tempo and were hit by two goals in five minutes early in the second.
Chris Iwelumo, on loan from Wolves, prodded home the first from a corner and then Lee Johnson found the winner at the undefended far post.
West Brom, who stay third in the Championship, were always too comfortable with their lead and hardly raised their game above the distinctly ordinary failing to find a troublesome shot in a late rally.
Their speed down the right flank unnerved Bristol early on, but the tables were turned on them by Danny Haynes.
Converted to a wide player after being signed from Ipswich in the summer, his speed destroyed left-back Joe Mattock and opened up the entire defence.
It was his run at a defensive pack of four and quick turn on the outside which opened the way for his devastating cross to Johnson, which was to bring City only their third win in 20 matches.
When the visitors were on top their attacking wing-back Gianni Zuiverloon caused problems which gradually exposed the uncertainty in City's defence. When Frank Nouble switched wings to step up the pressure the opening goal was a matter of time.
It arrived after 24 minutes when Roman Bednar's shot was blocked, but the ball came out to Dorrans on the right of goal. As no-one tried to close him down he sent in a composed shot off the inside of the far post for his 13th goal of the season.
Both sides had penalty appeals turned away by referee Neil Swarbrick.
Bednar looked for support in the fifth minute when he was hauled down a foot outside the box and while it looked an obvious foul Swarbrick was unimpressed.
He was equally dismissive of City's claim for hands against Gabriel Tamas early in the second half - indicating the ball had struck the defender's chest.