HOUSTON -- Zack Greinke had another solid outing, but didn't get much offensive help from his teammates.
Greinke gave up three runs and three hits in seven innings, taking his first loss in more than two months as the Houston Astros beat the Los Angeles Dodgers 3-1 Saturday night.
Greinke (13-3), 8-0 with a 1.16 ERA in his previous 11 starts, retired 16 of the last 17 batters he faced.
One night after being no-hit by Mike Fiers, the Dodgers managed seven hits though it wasn't enough.
"It feels like we're not swinging the bats great right now," Los Angeles manager Don Mattingly said. "The energy is not really what you'd like. It doesn't feel like the San Francisco series."
Kazmir (7-8) didn't permit a runner until Jimmy Rollins singled to start the fourth inning.
"Scott's been throwing good all year," Greinke said. "The first run I didn't think much of it and even the second run I didn't think much of it. But the third, I knew it was going to be tough from there."
Houston pitchers had retired 30 straight Dodgers until Rollins singled, and he was thrown out trying to stretch it into a double.
"It's good to get a hit just obviously to break that string," Mattingly said. "Obviously getting a hit maybe relieves it a little bit. But other than that, I think you know you have to score."
It was the Dodgers' first hit in 13 1/3 innings since Kike Hernardez's two-out double in the eighth inning of Wednesday's game at Oakland.
"Getting the guy on whether it be a walk or steal a bag, something we haven't done a lot of," Rollins said. "Finding ways to manufacture runs. That's the way to do it. But definitely need hits along the way."
Greinke allowed two homers in a game for the first time since last Aug. 23.
"That's how their team plays a lot," Greinke said of the homers. "A lot of good pitches but not good enough today is what it seems like."
Kazmir rebounded from his worst start with the Astros, giving up one run and six hits while striking out eight. He had lost three in a row since winning July 24 at Kansas City in his first start since being acquired from Oakland.
The start marked the 13th time this season Kazmir has allowed fewer than two runs.
Altuve's homer was the 10th of the season and gave the Astros nine players with 10-plus homers this season, tying a club record set in 2000.
Altuve led off the first with a triple and scored two batters later on an error by third baseman Justin Turner.
Valbuena hit a solo home run into the Houston bullpen in right center in the second to up the lead to 2-0.
Rollins doubled and scored on Turner's single in the sixth. Altuve hit his homer in the bottom half.
Dodgers: Yasiel Puig started in right field and batted second after being out of the lineup the last two games with a right hamstring injury. He went 1 for 4 with a single.
Astros: OF George Springer was hitting off a tee Friday, manager A.J. Hinch said. Springer has been on the disabled list since July 2 with a right wrist fracture and resumed baseball activities Aug. 14.
Dodgers: LHP Clayton Kershaw (10-6) will look to continue his string of solid outings Sunday in the finale of the three-game series with the Astros. Kershaw is 5-0 with an 0.82 ERA in his last seven starts.
Astros: RHP Lance McCullers (5-4) will be recalled from Double-A Corpus Christi prior to Sunday's game to make his first major league start since being tagged for six runs while getting just one out Aug. 3 at Texas. McCullers hasn't pitched since Aug. 18 against Arkansas.