The Cubs rallied from a 3-0 deficit to tie the game in the top of the eighth with singles by Dave Sappelt and Arismendy Alcantara and a two-run double by Steve Clevenger, who eventually scored on Nate Schierholtz's single.
The Cubs, who begin the season Monday at Pittsburgh at 12:35 CT, managed only three singles in the first seven innings
Cubs manager Dale Sveum started his regulars Saturday, but played them only a few innings. Astros manager Bo Porter started almost all reserves, many of whom are ticketed for the Minors.
"Most of our guys will have the day off," Porter said of his starters. "We don't want to risk any more injuries."
Houston's Domingo Santana began the scoring with a double to the base of Tal's Hill in center field in the second inning, scoring J. D. Martinez.
Carlos Correa, the No. 1 pick in the June Draft by the Astros, made it 2-0 with a sacrifice fly in the fifth inning. Santana tripled in the sixth inning to score Houston's third run. Santana and Correa both finished with three hits.
Cubs second baseman Darwin Barney left the game in the third inning after colliding with a railing on the right-field line.
Sappelt made an athletic running catch in the fourth in front of the 404 sign in left-center, hanging onto the ball after hitting the wall hard.
Brad Peacock, the No. 4 pitcher in the Astros' rotation, started Saturday and went three innings, giving up two singles and no runs. Peacock was obtained from Oakland in an offseason trade. He will make his first start of the regular season next Friday at home against the A's.
"I've got a bunch of good buddies over there," Peacock said. "Dan Straily is pitching. It should be fun. Of course, I'll be nervous. It's my first start in the big leagues in quite a while. Just breathe out there and make my pitches."
Peacock did start two games at the end of the 2011 season for the Nationals before being traded to Oakland. Earning a spot in the rotation with Houston just before the start of the season meant something special to him.
"It's something I've dreamed about my whole life," Peacock said. "Just to be in the big leagues, I'm very fortunate. They gave me the opportunity here. This is my second year in a row to be traded, so I knew what to expect. I think I have a better situation here than I had in Oakland."
Cubs starter Travis Wood worked 4 1/3 innings, giving up two runs, five hits, striking out seven and walking three. Jensen Lewis came out of the bullpen to pitch out of a one-out, bases-loaded situation by retiring the side on a double-play grounder.
Houston reliever Mike Foltynewicz pitched four scoreless innings of relief. The 6-foot-4 right-hander gave up just one hit and one walk with an impressive seven strikeouts.