Geoff Blum belted the go-ahead homer in the seventh, and Jeff Keppinger had four hits, three RBI and three runs for the Astros. Michael Bourn added three hits and three runs for Houston.
Houston's starting pitcher, Roy Oswalt, lasted just 1 2/3 innings before leaving with a lower back strain. Jeff Fulchino (4-3) gave up three runs in three innings, but got the win.
Aramis Ramirez hit a three-run homer for the Cubs, who lost for just the third time in 12 games.
Ryan Dempster, who had been out with a toe fracture, was charged with six runs on nine hits over five innings. Angel Guzman (2-2) was the loser.
Copyright 2009 by United Press International.