ANAHEIM, Calif. -- Dallas Keuchel couldn't complain after he got two chances to record the final out for what would have been his second successive shutout.
Even though the Houston left-hander barely missed the big finish, he happily settled for another victory for the suddenly surging Astros.
Keuchel (5-2) followed up his first career shutout with another gem, striking out eight with just one walk. He didn't allow a runner past second base until the ninth, when manager Bo Porter reluctantly pulled him after two-out singles by Mike Trout and Albert Pujols.
"I think anybody would want to finish that game, but at the end of the day, we got the win," Keuchel said. "We're playing fun. It's fun right now. A lot of people are seeing what we're capable of doing."
Porter left Keuchel in after Trout barely beat out a grounder, but the manager returned to pull him after Pujols' hard grounder glanced off Matt Dominguez's glove at third on Keuchel's 128th pitch.
"I don't think you're ever disappointed when you win," Porter said. "Dallas threw the ball tremendous, and we gave him every opportunity to get the complete-game shutout. It didn't happen, but it doesn't diminish what he did."
Keuchel improved to 5-1 in his last eight starts. He has yielded four runs, 18 hits and one walk over 25 1-3 innings in three straight dominant outings.
He figures it's the best work of his pro career, but not the best of his life.
"I think I had a pretty good stretch in high school," Keuchel said.
Keuchel baffled the Angels, whose only hits in the first seven innings were back-to-back singles by Pujols and Kendrick in the fourth.
"We didn't have to do too much but be a spectator," said Fowler, who has reached base in 17 straight games. "When a guy is pitching like that, you just want to make plays to help him out."
Houston's bats also are improving just in time for a three-game series at Angel Stadium, where the Astros have won seven of their past eight. The Astros have at least nine hits in nine consecutive games for the first time since June 2007.
Richards yielded a season-high 10 hits and five runs over seven innings, leaving him with only two victories in his past seven starts despite his impressive record.
"Finding a way to throw seven innings after going through all that in the first three isn't an easy thing to do," Richards said. "I put up some zeros and kept us in the ballgame and gave us a chance to score runs. I think that's part of my maturity and my progression as a starting pitcher."
Jose Altuve extended his hitting streak to 11 games with a leadoff double in the first. He advanced to third on Richards' major league-leading 10th wild pitch and then scored when Richards comically lobbed a pickoff attempt into left-field foul territory.
Castro and Dominguez followed with run-scoring singles. Fowler drove in another run with a two-out single in the second, but cost the Astros a second run when he was thrown out trying to stretch it into a double while George Springer ran home from first.
"He made some adjustments as the game went on, bringing his two-seamer in and making some pitches to get some double-play balls, which was good to see," Angels manager Mike Scioscia said of Richards. "But the damage was obviously done, and we didn't pressure them enough offensively to get back in it."
Fowler drew a walk in his career-best ninth consecutive game, the first Houston player to accomplish that feat since Morgan Ensberg in 2006. ... Angels LHP Hector Santiago, who lost his job in the rotation and hadn't pitched in eight days, retired all six batters he faced in relief. ... Angels opening-day starters Kole Calhoun and David Freese both had extra-base hits during rehab assignments with Triple-A Salt Lake.