The game proved a tense affair and Fabrice Muamba was sent-off for the Blues on 58 minutes for two bookings.
But Cameron Jerome put the Blues ahead when he was first to react after Chris Adamson parried a Radhi Jaidi header.
Sebastian Larsson cut in from the touchline, evaded two challenges and drilled a low drive to wrap up the win.
Sheffield Wednesday boss Brian Laws:
"It's been a great run. We knew this was going to be a game of nerves with so much at stake for both parties. "I said each team was going to have their moments and who dealt with those better would come out on top. Unfortunately, we were not as clinical as we would have liked to have been.
"Had Kenny Lunt's shot gone in, rather than hitting the bar when it was 0-0, I believe there would have been no way back for Birmingham.
"But what we can look on is a great end to the season and I am as proud as punch with my players."
Birmingham: Doyle, N'Gotty, Jaidi, Martin Taylor, Kelly, Larsson, Muamba, Clemence, McSheffrey (Nafti 63), Bendtner (Jerome 68), Cole (Vine 76).
Subs Not Used: Maik Taylor, Campbell.
Sent Off: Muamba (58).
Booked: Muamba, Jaidi, Clemence.
Goals: Jerome 74, Larsson 84.
Sheff Wed: Adamson, Simek (Clarke 86), Bullen, Wood, Spurr, Tudgay, Whelan, Lunt (Johnson 76), Brunt, MacLean, Burton.
Subs Not Used: O'Donnell, Folly, Gilbert.
Booked: Bullen, Burton.
Att: 29,317
Ref: P Taylor (Hertfordshire).