Zambrano struck out 12 while allowing a run and just three hits over eight innings. He blanked the White Sox after Paul Konerko homered in the first inning.
The Cubs took the lead for good just one batter into the game, when Alfonso Soriano homered off Mark Buehrle. Aramis Ramirez also homered in the opening inning before he sparked a three-run ninth with an R-B-I single.
Ramirez was activated before the game after recovering from tendinitis in his left knee.
Felix Pie added a two-run single as the Cubs ended a two-game slide while handing the White Sox their third consecutive loss.
Zambrano improved to 8-and-6 while Buehrle dropped to 4-and-4. Buehrle allowed just four hits over seven innings.