ANAHEIM, Calif. (AP) -- The Houston Astros have made small but important gains during their first season in the American League. The winning streaks have been few and far between, yet now they appear to be on the upswing.
Jason Castro's leadoff homer triggered a three-run fourth against Tommy Hanson, and Dallas Keuchel pitched seven effective innings to lead the Astros to a 6-3 victory over the Los Angeles Angels on Friday night.
Houston, coming off consecutive wins at Colorado, has won three in a row for the second time this season. The other time was April 8-10, when the Astros won twice at Seattle and followed up with a 5-0 win against Hanson at Angel Stadium.
''We're just trying to ride this out,'' rookie center fielder Brandon Barnes said. ''We're going out there and playing hard-nosed baseball. We're playing good defense, our pitching's been outstanding and we've been getting big hits when we need them.''
Keuchel (2-2) allowed two runs and six hits, struck out four and walked none in the opener of a four-game series. The 25-year-old left-hander was making his fifth start after beginning the season in the bullpen.
''The last couple of outings I felt pretty good, but there were just one or two pitches that swung in their favor,'' Keuchel said. ''Tonight I'd like to take back that second inning, but other than that, I felt really good.''
Paul Clemens came on in the eighth with the Astros leading 6-2 and gave up Erick Aybar's first homer of the year before walking two batters. But then Travis Blackley retired Josh Hamilton on a popup with runners at the corners, and Jose Veras pitched a perfect ninth for his ninth save in 12 chances.
Hanson (2-2) was charged with five runs - four earned - and eight hits over 6 1-3 innings in his first start since May 4. The right-hander was on the bereavement list for six days in April following the death of his stepbrother, then made two starts before going on the restricted list to continue dealing with his grief.
It was Hanson's second loss in two starts this season against the Astros, a team he was 4-0 with a 1.29 ERA against in six starts prior to this season with Atlanta.
''It was good to get back out there and pitch again,'' Hanson said. ''I was really amped up at the beginning of the game and I was excited to go out and pitch. My focus was there, but I felt like I could have done a better job tonight. Not exactly the performance I would've liked to put out there, but it's good to get that one over with.''
The Angels took a 2-0 lead in the second with Chris Iannetta's RBI single and a run-scoring groundout by newcomer Chris Nelson. But the Astros pulled ahead with three in the fourth, getting a leadoff home run by Castro on an 0-2 pitch and sacrifice flies from Chris Carter and Matt Dominguez.
The Astros extended their margin to 6-2 with three runs in the seventh, two of which were unearned because of second baseman Howie Kendrick's throwing error.
Ronny Cedeno started the rally with a one-out triple off the center-field fence that was poorly tracked by Mike Trout. Barnes drove in Cedeno with a single on Hanson's 89th and final pitch.
''We were just trying to attack his fastball. That was our plan early, and we finally got to him,'' Barnes said. ''We made good adjustments through the game and just kept going.''
Jose Altuve greeted Dane De La Rosa with a single, then made a heads-up baserunning play by stopping short on his way to second on Castro's grounder to a charging Kendrick - who threw the ball past first baseman Brendan Harris as Barnes scored.
''That was a tremendous job by Altuve,'' Astros manager Bo Porter said. ''That's something that you work on in spring training, and it comes up a lot of times. The mistake some baserunners make is that they think they can beat the second baseman. Then the guy tags you and throws to first base, and it's a double play. But Altuve is a heads-up player with a great baseball I.Q. He did the absolute right thing there.''
Carlos Pena drove in the Astros' sixth run with a two-out RBI single, his third hit of the game.
NOTES: The Angels began wearing a commemorative patch on the front of their jerseys in honor of longtime team physician Lewis Yocum, who died last weekend of liver cancer at age 65. ... The Astros placed RHP Edgar Gonzalez on the 15-day disabled list, retroactive to May 26, because of a shoulder strain. RHP Josh Fields was reinstated from the DL after missing 51 games because of a forearm strain. ... Castro's homer to left-center was his first RBI in 18 career at-bats against the Angels to that point. ... Of the 75 home runs Hanson has given up in the majors, Castro's was only the fourth that came on an 0-2 count. As a result of Hanson's return and that of staff ace Jered Weaver on Wednesday, Angels manager Mike Scioscia has decided to go with a six-man rotation at least through the end of this eight-game homestand. ''I think right now is a good time for it,'' Scioscia said. ''I think it helps the whole group if you can do it periodically. It's like throwing an off day in there.'' ... Harris started at 1B in place of Albert Pujols, who is still running poorly because of chronic foot and knee problems. Pujols got the night off. ... Astros SS Marwin Gonzalez did not play due to a right hamstring strain.