A comfortable victory saw Birmingham leapfrog promotion rivals Middlesbrough to go fourth in the Championship.
Nikola Zigic opened the scoring on 11 minutes with a low header from Chris Burke's cross.
Joe Bennett fired home for the visitors shortly after the break only to be denied by a late offside flag.
Two goals in three minutes from Marlon King and Keith Fahey then killed off the contest to give Birmingham their first win in six games.
Former Rangers winger Burke, last week voted among the top 10 players in the Championship in a poll of the league's managers, was involved in most of Birmingham's best work, also setting up King's strike to take his assist tally to 13 this season - the highest in the division.
The Scot's inch-perfect cross set up Zigic to open the scoring with a low header at the near post for his ninth of the season.
It came against the run of play after Boro, who arrived having won only once at St Andrew's in 33 years, started positively as Lukas Jutkiewicz forced a solid parried save from home keeper Boaz Myhill.
Burke nearly doubled the Blues' lead with a 30-yard strike that was well saved by Jason Steele before Boro's Adam Hammill and Jutkiewicz both wasted good chances to level.
After the break, Bennett thought he had equalised with a well-taken finish from Hammill's through-ball only to be frustrated by a late flag.
But Birmingham were coasting after Burke squared the ball to King, who finished from 12 yards on 57 minutes.
Just three minutes later, a swift counter-attack led from his own half by Fahey resulted in the Irishman completing his run with a cool finish under Steele.
Middlesbrough, who now slip to sixth in the table, were denied a late consolation by a contender for save of the season from Myhill, who somehow got down to deny Seb Hines.