It looked like being a frustrating afternoon for Roberto Mancini's men in a repeat of the 2011 final, with Stoke battling hard but also enjoying good fortune when a bad foul by Glenn Whelan went unpunished by referee Howard Webb.
But Man City, who lost Vincent Kompany to injury, grabbed a winner in the 85th minute as Zabaleta slotted a shot past Thomas Sorensen with the outside of his boot following a fast break.
Overnight snowfall at the Britannia Stadium left the ground staff with a lot of work to do in the morning to get the pitch ready for play, and Stoke were nearly caught cold when the game kicked off as Man City began brightly and Carlos Tevez tested Sorensen's reflexes with a firm shot from a tight angle.
Edin Dzeko had an effort charged down by Ryan Shawcross, before David Silva came close to breaking the deadlock in the 20th minute with a curling shot which crashed off the post.
The presence of both Matthew Etherington and Michael Kightly in the Stoke line-up provided an extra threat down the flanks but, apart from one occasion when Shawcross had a goal disallowed for offside, stand-in Man City keeper Costel Pantilimon was not unduly troubled by the home side in the first half.
Kompany signalled to the bench that he needed to come off before the break and the Potters appeared to grow in confidence, with the Blues reverting to three at the back as Gael Clichy came on after a lengthy period of thinking time by Mancini and David Platt.
The Blues continued to play more fluently than their opponents and Tevez should have done better when he fired wide at the back post following a slick attack.
Stoke were lucky not to be reduced to ten men early in the second period as Whelan jumped in two-footed on Javi Garcia and caught the Spaniard on the ankle, but referee Webb did not even brandish a yellow.
Aleksandar Kolarov was replaced by Sergio Aguero just after the hour mark and the Premier League champions started to commit more men forward, with Sorensen rushing off his line to deny Gareth Barry after he had been played in behind the Stoke defence by an exquisite pass from Silva.
Dzeko and Tevez shot wide and Cameron Jerome saw a weak effort held by Pantilimon as the match became stretched in the closing stages, and it was Man City who finally provided the cutting edge with five minutes remaining.
Zabaleta struck with a fine finish to cap an impressive individual performance, and Man City held on in the final few minutes to end Stoke's FA Cup dreams.