Fulham 2 Birmingham City 1
After his superb midweek winner against Shakhtar Donetsk in the Europa League, Zamora produced another outstanding effort, his 15th goal of the season in all competitions, to consign the Blues to a third successive away league defeat.
Watched by England coach Fabio Capello, the forward worked hard throughout, but had to wait until stoppage time for his opportunity to shine.
With the sides locked at 1-1 Stephen Carr fouled Zoltan Gera on the edge of the Birmingham area and Zamora stepped up to plant a curling left-foot shot into the top left-hand corner, beyond Joe Hart's despairing dive.
The Cottagers' stirring finish was in stark contrast to the opening moments of the game, in which Birmingham went ahead with barely three minutes on the clock.
The Blues were quickest out of the blocks and when the ball broke to Lee Bowyer on the edge of the Fulham box, the midfielder's dinked cross to the edge of the six-yard area was met by Chris Baird, who in attempting to clear succeeded only in heading into the top right-hand corner of the goal.
Goalkeeper Mark Schwarzer was left rooted to the spot, while Baird could only shake his head in disbelief.
That goal ended the home side's run of clean sheets stretching back over five hours of Premier League football and Fulham struggled to regain parity for the rest of the first half.
Birmingham's midfield pairing of Barry Ferguson and Bowyer caught the eye, breaking up play and pressing Fulham's creative players, particularly Danny Murphy and Zoltan Gera, into mistakes.
After half-time, however, the home side began to find their rhythm. First Zamora hooked in a 25-yard half-volley on the turn which Hart saved comfortably.
Then Fulham had a penalty shout turned down when Gera's attempted flick appeared to strike Scott Dann on the arm.
Then in the 60th minute Fulham were level after a moment of quality from winger Damien Duff. The Irishman cut inside from the right wing, played a one-two with Gera and speared a drive low past Hart from the edge of the box.
Birmingham had an opportunity to go in front again ten minutes later, when James McFadden's drive from outside the box was touched on to the bar by Schwarzer.
But it was Zamora who was to have the final say, the home side leapfrogging Birmingham into ninth place in the table, having now lost just once in their last 11 matches at Craven Cottage.