Roy Oswalt (7-8) gave up only one run on six hits with no walks and nine strikeouts, but had to be lifted before throwing a pitch in the seventh because of a strained right hip.
Berkman also walked twice and scored two runs. Brad Ausmus had a two-run single for Houston, which has three straight wins.
Eric Stults (2-1) gave up four runs on five hits and three walks over 5 1/3 innings. Loney went 2-for-3 with an RBI, and Andre Ethier doubled and scored a run for Los Angeles.