Carlos Lee hit a solo homer and Brian Moehler pitched seven effective innings for the Astros, who have won four of their last five games.
Miguel Tejada led off the Houston ninth with a one-hop, ground-rule double into the seats in right. Pence lined the first pitch he saw from Howry (3-3) to the gap in left center.
Tejada hesitated, then sprinted home, beating the throw from center fielder Jim Edmonds. Pence jumped in the air and pumped his fist at second as the rest of the Astros mobbed Tejada at the plate.
Geoff Geary (2-1) pitched two perfect innings in relief for the win.
Moehler allowed four hits and struck out three in matching his longest start of the season. Jim Edmonds' homer in the fifth was the only blemish on Moehler's performance.
Cubs starter Ted Lilly was just as good, giving up six hits with six strikeouts in seven innings.
Both breezed through the first four innings, allowing two hits apiece. Ryan Theriot had a two-out double in the third for the Cubs and Kaz Matsui legged out his first triple of the season with two outs in the Astros' half of the inning.
Edmonds led off the fifth with his 11th homer, an opposite-field shot into the porch in left. Mark DeRosa flied out to the warning track in right before Mike Fontenot hammered a double off the left-field scoreboard.
Fontenot went to third on Moehler's wild pitch to Lilly, but Lilly struck out on the next pitch. Theriot walked, but Kosuke Fukudome flied out to stall the threat.
Moehler retired seven straight Cubs after the walk to Theriot.