ANAHEIM -- Dallas Keuchel wanted to finish what he'd started and nurtured through 26 outs on Monday night, and manager Bo Porter wanted to give his 26-year-old left-hander every opportunity -- within reason.
But the Angels' Mike Trout and Albert Pujols had other ideas, getting two-out hits in the ninth inning, so Porter had to take Keuchel out after he'd thrown a career-high 128 pitches. Reliever Josh Zeid gave up a two-run triple to Howie Kendrick, ruining Keuchel's chances at a second consecutive shutout, before getting the last out in the Astros' 5-2 victory, their seventh in their past eight visits to Angel Stadium.
"Obviously, Dallas threw the ball tremendous," Porter said after Keuchel improved to 5-2 and lowered his ERA to 2.92. "We gave him every opportunity to get a complete-game shutout. It just didn't happen. But that shouldn't diminish what he accomplished tonight."
Keuchel had allowed only three hits and was an out away from duplicating his feat of May 13, when he shut out Texas, when Trout, busting it hard up the line, beat out an infield hit on a close play at first. Porter went out to talk with first-base umpire Phil Cuzzi while mulling a replay challenge, decided against it, and then went to the mound to see Keuchel.
"He had an extra day between starts, so we felt we could take him to 120 pitches," Porter said. "It was a bang-bang play at first. Give credit to Mike Trout, that's why he's the great player that he is."
Porter told his starter he had one more hitter, and that hitter, Pujols, singled to Keuchel's night.
"I think anybody would want to finish that game," Keuchel said, "but in the end we came out with more runs and the win."
Keuchel struck out nine, walked one and got 16 ground-ball outs.
The Angels were impressed.
"I think the biggest thing for him tonight was really that sinker was very good," Angels catcher Chris Iannetta said. "He was throwing it for strikes, he was also throwing it below the zone for ... I don't want to say a chase, but he was getting a lot of swings and misses on it.
"And he always has that changeup in his back pocket. He was working really quick, especially out of the stretch. He was very quick to the plate, and he was keeping guys off balance, too. He pitched a great game."
The Astros helped Keuchel with three first-inning runs against another hot starter, Garrett Richards (4-1). Jason Castro, Jose Altuve and Matt Dominguez had two hits apiece. The Astros had 10, all off Richards, running their streak of at least nine hits to nine consecutive games.
The five-run lead the Astros built through three innings was more than enough for Keuchel, even against an Angels lineup that's scored the fourth-most runs in the American League.
"That's a very powerful lineup," Keuchel said. "I was lucky to get into the ninth inning. I was careful, but at the same time, my game is to go out and attack the zone."
Porter credited Castro's pitch-calling as well as the Astros' defensive play, which he deemed their best of the year. Second baseman Altuve had a pair of sparklers to deny hits.
"We've been playing pretty good lately," Porter said of his team, which won its third in a row for the first time this season and has won consecutive series against the Rangers and White Sox. "Our offense is starting to understand what it takes, and our starting pitching has been tremendous."
Asked why he's pitching better this season than last, when he went 6-10 with a 5.15 ERA, Keuchel said he doesn't think that's the case.
"I feel like I was just as good last year, but balls are being hit to guys more," he said. "I had the two-seamer and slider working last year, it's just part of us growing and getting better as a team."
Earl Bloom is a contributor to MLB.com. This story was not subject to the approval of Major League Baseball or its clubs.