HOUSTON (AP) Lance McCullers is finally feeling like himself on the mound after spending the first five weeks of the season on the disabled list with a sore shoulder.
''The way I started the season and the injury and coming back I was really feeling for some stuff,'' McCullers said. ''I just feel more confident when I'm going out there recently.''
Will Harris finished the ninth for his 10th save.
McCullers was lifted for Harris after walking Kole Calhoun and Mike Trout with no outs in the ninth. Carlos Correa saved a run when he dived to stop a grounder hit by Daniel Nava and tossed the ball to second for a force for the second out.
''To knock that ball down was a success in its own right; to get an out (from) it saved the game,'' manager A.J. Hinch said.
An RBI single by Andrelton Simmons came next to get the Angels within one, but Harris struck out Ji-Man Choi for his 10th save.
The win snaps a season-high six-game winning streak for the Angels and is Houston's ninth straight win over Los Angeles.
Jason Castro and George Springer provided the offense for Houston with an RBI each.
McCullers (5-4) allowed four hits and his 10 strikeouts tied a season-high in his longest outing of the season.
''He had a good game,'' Hinch said. ''That was as effective with his fastball as he's been this season and obviously he mixed in his curveball as he usually does.''
He had some traffic on the bases early, but was helped out by a defense that turned double plays to end both the second and fifth innings. He sailed through the next three innings, retiring nine straight and striking out the side in the eighth.
Los Angeles starter Matt Shoemaker (5-10) allowed five hits and two runs with five strikeouts in 6 2/3 innings. The performance comes after he threw his first career complete game and struck out a career-high 13 in a 1-0 win over the White Sox in his last start.
Preston Tucker, who was called up from Triple-A Fresno on Friday, tripled onto Tal's Hill in center field with one out in the fifth inning. Castro followed with his single to shallow right field to score Tucker and make it 1-0.
Carlos Gomez bunted for a single with one out in the seventh inning and stole second. He reached third on a groundout by Tucker before Castro drew a walk to chase Shoemaker.
Springer greeted Joe Smith with a single to left field to score Gomez and push the lead to 2-0.
Angels: LHP Tyler Skaggs (shoulder tightness) felt good after a rehabilitation start for Triple-A Salt Lake on Wednesday. He'll throw a bullpen on Saturday before the Angels decide whether he'll need another start in the minors or joins the rotation.
Astros: C Evan Gattis was out of the lineup with a bruised right hand on Friday. He was injured on Wednesday when he was hit by a pitch. Hinch said he was feeling better on Friday and they didn't expect him to be out long.
McCullers fanned Trout three times to become the first pitcher to strike him out three times in a game since Tampa Bay's Chris Archer did it on June 2, 2015.
''He threw me curveballs all night. I just wasn't picking them up,'' Trout said. ''It was tough. That last at-bat, I was just trying to get on base.''
Angels: Jered Weaver (8-7, 5.02) will make his 19th start on Saturday. Weaver has struggled in two starts against Houston this year, going 0-2 with a 7.94 ERA.
Astros: Collin McHugh (6-6, 4.25) is scheduled to start for Houston on Saturday. McHugh allowed four hits and fanned 10 in six scoreless innings in an 8-1 win over Seattle in his last start.