"I don't know if Weave had his best stuff and I don't know if his fastball command was as sharp as we've seen, but he battled through six innings," manager Mike Scioscia said. "He needed a lot of pitches to get to that point of the game, but definitely kept us in it and got a win."
Weaver kept Astros hitters off-balance throughout, striking out five to give him 1,234 in his career and move him into fourth place all-time in Angels history, behind Ryan, Finley and Mike Witt.
"It was pretty good for the most part," he said of his off-speed pitches. "Location was all right. I kind of got a little erratic at times, falling behind, just wasn't able to repeat my pitches that I normally do. But I was able to make some pitches to be able to get out of some situations."
Weaver threw 108 pitches over his six frames, but said he still had something left in the tank.
"I felt good," he said. "It was one of those times where you get up to 110 pitches and still feel like you can go out there. But at this point in the season, there's really no reason to go out there and push it.
"We're pretty comfortable with those guys down in the bullpen. The way they've been throwing the ball lately is very comforting. I was very excited to hand the ball over to those guys and let them do the rest."
Michael Kohn, Dane De La Rosa, and Juan Gutierrez each pitched a scoreless inning of relief.
Glenn Sattell is a contributor to MLB.com. This story was not subject to the approval of Major League Baseball or its clubs.