HOUSTON -- Carlos Carrasco extended a string of solid pitching with his best start of the season.
Yan Gomes had an RBI single in the fourth inning and a run-scoring triple in the sixth for the Indians, who remained five games out of a playoff spot with 11 to play.
Carrasco (8-5) walked one in his first career complete game. His previous best for strikeouts was 10 on Sept. 2 against Detroit, and his longest outing had been 8 2/3 innings on Sept. 7 against the Chicago White Sox.
"He was so good," Cleveland manager Terry Francona said. "He pounded the strike zone and he had a bunch of at-bats where it was three pitches or less. He's commanding everything, so then they started to try to get a little aggressive and he got some first-pitch outs. He pitched with so much confidence and he just attacked the entire night."
Carrasco became the second pitcher in major league history to strike out 12 batters on 98 pitches or fewer in a shutout. He joined Sandy Koufax, who threw a no-hitter on June 4, 1964, on 97 pitches.
Altuve had another infield single with two outs in the ninth, snapping a streak of 17 straight batters retired by Carrasco.
Carrasco said he did not think about the possibility of throwing a no-hitter -- he was just thinking about getting outs.
"I felt great," he said. "I think my changeup was really good. I was throwing it for a strike. The best ones were the last three changeups I threw for strikeouts. I think everything was good. I had great command of the fastball, curveball and slider."
In eight August and September starts since returning to the rotation, Carrasco has allowed seven runs in 54 innings -- including four in his previous start Friday at Detroit. He has not permitted a run in four of those eight starts.
"They put me back in the rotation and gave me the opportunity," Carrasco said. "I don't want to let it pass. I have a different mentality."
Altuve leads the majors with 213 hits, which ties Dustin Pedroia for the most by a second baseman since 1975. Pedroia had 213 hits for Boston in 2008, when he won the AL MVP award.
Altuve said Carrasco threw an incredible game, and he felt lucky to get the two hits.
"The two hits I got, I didn't hit the ball past the infield today," Altuve said. "One to shortstop, a strikeout and two groundballs. If you were able to get two hits, you feel good."
Houston starter Brett Oberholtzer (5-12) gave up two runs and seven hits with three strikeouts in 7 2/3 innings. The left-hander retired 11 of the first 12 batters he faced before Carlos Santana got the game's first hit with a double in the fourth.
"I felt pretty good with everything," Oberholtzer said. "My fastball command was pretty good to both sides of the plate. I would like to throw in a little bit more to righties to keep them off balance on some of the changeups."
Gomes reached on an error in the second.
Indians: OF Ryan Raburn had an MRI on his left knee that revealed a meniscus injury, Francona said. Raburn will have season-ending surgery. "He needs to get the meniscus fixed, so we are in the midst of having that set up to have the scope, and it will be done sooner rather than later," Francona said. "Hopefully real soon. Ligaments are good, all intact."
Astros: RHP Brad Peacock, scratched from his scheduled start Monday with lower back tightness, will start Friday against Seattle.
The Indians will send RHP Danny Salazar (6-7) to the mound Thursday in the finale of the four-game series. Salazar is 3-2 with a 2.43 ERA in seven starts in August and September. Houston will counter with RHP Scott Feldman (8-11), who allowed two runs in six innings Saturday.