Solly March gave Albion the lead on 17 minutes but Jon Toral levelled just four minutes later, before Zamora scored the winner two minutes into the second half.
The win increased Brighton’s unbeaten start in the league to 18 games - just one short of matching QPR’s 19-game unbeaten start to a Championship season in 2010-11.
The hosts made a bright start and Dale Stephens, leaning back, headed Liam Rosenior’s cross over, Jamie Murphy fired wide from 20 yards and March shot into the side netting, all in the opening eight minutes.
Birmingham’s Demarai Gray had an effort deflected wide on 11 minutes but Brighton broke quickly from the resulting corner and after Murphy, Zamora and Beram Kayal had linked up, Tomer Hemed’s low shot from a tight angle was saved by former Albion keeper Tomasz Kuszczak.
Brighton took the lead on 17 minutes when Murphy jinked past three players, before feeding Rosenior down the left. His cross was met on the volley by March, whose first shot was blocked but he then crashed the ball home right-footed from eight yards.
Birmingham levelled only four minutes later, somewhat against the run of play, when Stephen Gleeson fed Jacques Maghoma, whose powerful effort was parried by David Stockdale and Toral headed home from six yards.
Brighton were forced into a change on 27 minutes when Rosenior was forced off after a 50-50 challenge with Maikel Kieftenbeld. He immediately called for attention and was stretchered off, with Inigo Calderon replacing him.
Within a minute, Birmingham’s Nicolai Brock-Madsen curled a shot just over from the edge of the penalty area.
Brighton had the ball in the net again on 31 minutes. March delivered a free kick and Dunk jumped with Kuszczak, who dropped the ball and Hemed turned it in but referee Gavin Ward ruled it out for a foul by Dunk, when there appeared to be minimal, if any, contact.
Kuszczak kept out Kayal’s well-struck free kick from 20 yards three minutes later and Murphy scuffed the follow-up wide.
Birmingham’s keeper then pushed over March’s free kick as Brighton enjoyed a spell of pressure and skipper Gordon Greer missed the ball when just three yards out as March sent in another dangerous corner.
The visitors almost took the lead in the third of five minutes injury-time at the end of the first half but Toral curled the ball a whisker wide of the far post from 20 yards as the sides went in level at the break.
The Seagulls went back ahead just two minutes into the second half. Murphy did well down the left and cut the ball back for March, whose fierce effort was parried by Kuzsczak but Zamora, on his first home start for Brighton in more than 12 years, was on hand to side-foot home from a couple of yards.
Albion could have extended their lead on 52 minutes when Kuzsczak, who struggled with crosses all game, spilled March’s corner but Hemed blazed over from close range.
The Seagulls, in front of a season-high crowd of 27,242, knocked the ball around superbly at times and after a lovely one-touch build-up on the hour, Hemed’s low shot from the edge of the area was comfortably saved by Kuzszcak.
Birmingham introduced striker James Vaughan, who joined on loan from Huddersfield last week, just past the hour and Brighton brought on Manchester United loanee James Wilson for Zamora on 65 minutes.
Kuszczak was down well to collect March’s low cross, after a superb run on 74 minutes, with Wilson waiting to tap home, before Birmingham went straight down the other end and Stockdale had to be alert to keep out Gray’s well-struck shot at his near post.
March then flashed an effort just wide, before his cross from the right was just too long for Hemed nine minutes from time.
Wilson then drove an effort inches wide of the far post a minute later, before he went even closer to a debut goal five minutes from time when he raced on to Kayal’s pass but hit a post when through one-on-one.
In the first of six added minutes at the end of the game, Vaughan was allowed to turn in the box but could only scoop a shot over the bar from 14 yards.
Three minutes later, Stockdale produced a fantastic save low to his right to keep out David Davis’s low strike when the ball appeared to be destined for the bottom corner as the Seagulls survived late pressure to hold on for all three points.
BRIGHTON: Stockdale; Bruno, Greer, Dunk, Rosenior (Calderon 27); March, Stephens, Kayal, Murphy; Hemed (Ince 82), Zamora (Wilson 65). Subs: Maenpaa, Goldson, Manu, van La Parra.
BIRMINGHAM: Kuszczak, Grounds, Kieftenbeld, Gray (Solomon-Otabor 83), Gleeson, Maghoma (Davis 64), Toral, Spector, Morrison, Caddis, Brock-Madsen (Vaughan 64). Subs: Legzdins, Eardley, Shinnie, Lowry.
Don’t miss out on all the latest breaking news where you live.
Here are four ways you can be sure you’ll be amongst the first to know what’s going on.
1 Make this website your homepage
2 Like our Facebook page at facebook.com/pages/Sport-Sussex
3 Follow us on Twitter @SportSussex
4 Register with us by clicking on ‘sign in’ (top right corner). You can then receive our daily newsletter AND add your point of view to stories that you read here.
And do share with your family and friends - so they don’t miss out!