HOUSTON -- Scott Feldman said he felt terrible warming up in the bullpen before Saturday night's game against Texas.
Once he got on the mound, he felt a lot better -- and it showed.
Feldman pitched a three-hitter for his second major league shutout, leading the Houston Astros to a 2-0 victory over the Rangers.
"That goes to show you, that doesn't always add up to what you bring out to the game," Feldman said, referring to his bullpen session.
Feldman (8-10) struck out five and walked one in his fourth career complete game and second this month. He also had one Aug. 3 against Toronto, yielding one run and eight hits in that game.
"I think I've been feeling better and better as the season's gone on, kind of just hope to keep that going the rest of the year," Feldman said.
The three hits allowed matched a career best for Feldman, who also threw a three-hitter against San Diego on May 1, 2013. His other shutout was Sept. 6, 2013, against the Chicago White Sox.
"That is as good as I've seen him pitch," Houston manager Bo Porter said. "When you look at some of the swings that they were taking -- not only out of the zone but in the strike zone -- that lets you know just how much the ball was moving, sinking and cutting."
Ross was pulled after five innings and 70 pitches. He was on a strict pitch count after throwing 42 in 2 1/3 innings Thursday for Triple-A Round Rock. The left-hander was recalled Saturday to make a spot start in place of Miles Mikolas, skipped due to shoulder fatigue.
"I felt good," Ross said. "I felt strong. They told me the pitch count got to me. I told them I would love to go back out there."
Ross struck out five and walked three. Jose Altuve got Houston's first hit, a one-out double in the sixth off Klein.
"He was outstanding," Texas manager Ron Washington said of Ross. "But it was about Robbie Ross, protecting him."
Feldman retired his first 13 batters before Ryan Rua's one-out single in the fifth.
Rougned Odor hit a leadoff single in the sixth, Adrian Beltre walked with one out in the seventh and Leonys Martin singled with one out in the ninth for the only other runners Feldman permitted. The right-hander did not allow anyone past second base.
Feldman has been solid of late, giving up three runs or fewer in six of his last seven starts.
Rangers: LHP Derek Holland (left knee) was activated from the 60-day disabled list and will make his first start of the season Tuesday in Kansas City.
Astros: INF Marwin Gonzalez was scratched from the lineup with discomfort in his right hamstring. Gregorio Petit started at shortstop for Gonzalez. ... OF George Springer (left quadriceps) is not ready to move forward with explosive activity, Porter said. There is no timetable for when Springer might return. "At this point, we just go day to day and see how he progresses and continues with the therapy," Porter said.
Texas RHP Nick Martinez (3-10) looks to rebound Sunday in the finale of the four-game series. He was tagged for five runs over five innings in his most recent start Tuesday.
The Astros will send LHP Dallas Keuchel (10-9) to the mound for his fourth start against the Rangers this season.
Astros minor league pitcher Ruben Alaniz was suspended 50 games without pay for violating baseball's drug program. The commissioner's office announced that Alaniz was punished following a second positive test for a drug of abuse.
The 23-year-old right-hander has no record and a 6.44 ERA in 14 games, including one start, with Double-A Corpus Christi this season.
Texas designated OF Mike Carp for assignment. ... The Rangers optioned RHP Nick Tepesch to Triple-A Round Rock to make room for Ross. Tepesch is scheduled to start for Texas on Wednesday in Kansas City.