The hosts, looking to build on their dramatic 4-3 win over Swansea last week, started brightly, as Auston Trusty headed an early chance over the bar.
A few minutes later they were ahead, when Hannibal netted an absolute screamer, spotting goalkeeper David Button out of position and curling a long range free-kick into the bottom corner.
The stopper was better placed when he saved Tahith Chong’s rasping drive on the half-hour mark, before Marc Albrighton saw a rare Baggies chance deflected just off target.
The majority of the action was down the other end of the field though, and Manchester United loanee Hannibal saw another fizzing free-kick saved before HT.
Birmingham got their second goal after the break, with Krystian Bielik doubling the lead as he converted at the back post from a terrific Hannibal corner.
West Brom were far from done though, and John Ruddy had to be on hand to keep out a John Swift effort on the hour-mark, their first shot on target of the game.
That was as good as it got for the unusually toothless Baggies, though, who missed out on the chance to move fifth in the table as they suffered a second defeat in their last three matches.
The Blues, on the other hand, have put a five-match losing streak behind them as they closed the gap up to the play-offs to six points by completing a first league double over West Brom since 1998/99.
Flashscore Man of the Match: Hannibal Mejbri (Birmingham City)