Lopez (4-3) went 5 1/3 innings to earn his second win in two starts, giving up three runs (two earned) on five hits, walking two and striking out three.
Carlos Pena provided a two-run double in the first inning to put the Cubs in front and Geovany Soto drove in a pair with a two-bagger in the sixth.
Henry Sosa (0-2) was saddled with his second loss in his second major league appearance, surrendering four runs on seven hits in a six-inning effort, during which he fanned six.
Matt Downs delivered a pair of RBI doubles for Houston.
Putin thinks Obama would save him if he were drowning
Rosie O'Donnell unveils nearly 50-pound weight loss