"We're a young team, but no excuses," said second baseman Brandon Phillips. "We're a better team than them. That's how I feel. They took advantage of the situations. That's what good teams do. We didn't take advantage of them."
Zambrano (4-2) held the Reds hitless for 4 1/3 innings. He finished with five walks and seven strikeouts to earn his 100th career win.
The Reds stranded 10 baserunners. They had runners on first and third in the eighth and ninth innings against the Cubs bullpen but could not push across the tying run.
"We have to learn how to drive in big runs," said Reds manager Dusty Baker. "We had plenty of chances tonight. We've got to keep teaching and preaching how to do it. It's the toughest thing for young players."
Reds starter Micah Owings (3-7) allowed two runs on five hits in six innings. He walked three and fanned six.
"Micah pitched a great game today," said Phillips. "He made one mistake. We just didn't get it done for him. We've got to learn from our mistakes today and take it into the game tomorrow."
Owings' one mistake was a 408-foot solo home run to center field by Zambrano, which put the Cubs ahead, 2-0, in the fifth.
It was Zambrano's 18th career home run. Six of those home runs have come off Reds pitching.
Owings labored early in Friday's game, needing 33 pitches to get through the first inning. He issued three walks in the first, including one to Mike Fontenot with the bases loaded to put the Cubs ahead, 1-0.
Zambrano did not allow a hit until Adam Rosales' single to left with one out in the fifth.
"That was vintage Zambrano," said Baker. "The guy's a great pitcher. But you're going to face somebody tough every night."
Key plays by Chicago's defense contributed to the Reds' frustration.
With runners on first and third with one out in the fifth, Micah Hoffpauir made an over-the-shoulder tumbling catch of Hairston's line drive to end the inning.
Chris Dickerson led off the sixth with a walk. He was attempting to steal second when Phillips popped out to Cubs first baseman Derek Lee, who quickly threw to Zambrano covering first to complete the double play.
The Reds' bats eventually awoke in the eighth.
Phillips' tripled to the wall in left-center off Cubs reliever Carlos Marmol, driving home Hairston to make the score 2-1.
"I was just looking for a ball to drive," said Phillips. "I put a good swing on it and made sure I didn't miss. If you miss a ball you can drive, you might not get it again."
Catcher Ramon Hernandez then walked, but Jay Bruce grounded out to end the inning.
Bruce snapped an 0-for-17 skid with a one-out single in the seventh.
The Reds had one more chance.
With two outs in the ninth, pinch-hitter Ryan Hanigan singled off Cubs closer Kevin Gregg.
Gregg seemingly had ended the game by striking out Hairston, but the ball skipped past Cubs catcher Koyie Hill for a wild pitch allowing Hairston to reach first and pinch-runner Wilkin Castillo to advance to third.
Dickerson, who made sensational diving catches to end the eighth and ninth, appeared poised to be Friday night's hero, but he popped out to third to end the game.
"There's a theory and philosophy on how to drive in runs," Baker said. "You can't get too excited, especially young players. You have to remove yourself from the situation. That's what we're trying to instill here. Especially when you have tough pitchers on the mound like tonight."