Zambrano, known for his emotional displays on the mound, kept himself in control until striking out Darin Erstad to finish off his first start since Sept. 2.
The big right-hander dropped to his knees and pointed to the sky with both hands after getting Erstad to swing and miss. Zambrano (14-5) was immediately mobbed on the mound by his teammates.
The crowd of 23,441 - mostly Cubs fans - erupted in a wild ovation after chanting "Let's go Z!" throughout the final inning.
Zambrano struck out a season-high 10 and walked one in the Cubs' first no-hitter since Milt Pappas pitched one against San Diego in 1972.
This was the second no-hitter in the majors this season - Boston's Jon Lester did it against Kansas City at Fenway Park on May 19.
The Astros only once came close to a hit. David Newhan lined a drive that first baseman Derrek Lee jumped to catch to end the fifth inning.
Zambrano helped himself, too, by charging off the mound and across the first-base line to catch Hunter Pence's foul pop for the second out in the eighth.
Zambrano began the ninth by getting Humberto Quintero to ground out on one pitch - it was his 100th of the game. After pinch-hitter Jose Castillo also grounded out, Erstad chased a full-count pitch low-and-away for Zambrano's first shutout since 2004.
With his jersey untucked, Zambrano paraded triumphantly through a series of interviews in front of the Cubs dugout, then waved to the still-cheering crowd as he walked down the steps.
Coming into the game, Cubs manager Lou Piniella said he wanted to limit the 27-year-old Venezuelan ace to 100 pitches in his return to the rotation - and Zambrano managed to come close, even while pulling off the no-hitter. Zambrano threw 110 pitches, 73 for strikes.
The win could be yet another sign of good things to come for the NL Central-leading Cubs, whose fans have gotten used to doing more crying than cheering in September during 100 years' worth of World Series frustration.
The Cubs took a 7½-game lead in the NL Central over the fading Brewers, who were swept in a day-night doubleheader by the Philadelphia Phillies.
The Astros fell two games back of the Brewers and Phillies, who are tied in the wild-card race. Houston had won six in a row and 14 of 15.
Zambrano didn't allow a baserunner until he walked Michael Bourn in the fourth inning.
He allowed only one more baserunner the rest of the night, hitting Pence in the back with two outs in the fifth.
Zambrano also made an offensive contribution in the Cubs' four-run third inning, singling and then chugging home from first on Lee's double. The Cubs chased Randy Wolf (10-12) in the third, his shortest outing of the season.
It was the first complete game for Zambrano since June 16, 2007, at home against the Padres. He hadn't thrown a shutout since April 7, 2004, a two-hitter at home against the Rockies.
Alfonso Soriano led off the game with a home run, his 28th of the year.