The Royals are now 4 1/2 games back of the Indians in the American League Central -- the first time they are within that many games of the division lead since May 15.
Hochevar (4-7) held Houston hitless through four innings and escaped every jam unscathed. The right-hander was efficient, too, striking out six and walking four on 93 pitches. Recently, he has tried to focus on changing speeds just as much as hitting the corners.
While Hochevar has a long way to go to show he's made impact adjustments, his ERA has dropped from 6.63 to 5.65 over his last three starts.
"It's starting to come together," Hochevar said. "The main thing is making good pitches. That's where my focus has been. That's where I plan on staying. Just going out and executing quality pitches one at a time."
The Royals got just enough offense early on. First baseman Billy Butler hit his 13th homer in the first, a solo shot on a middle-of-the-plate fastball from Rodriguez.
"I'm in the middle of the lineup and that's what I'm supposed to do," Butler said.
Alcides Escobar drove in Yuniesky Betancourt in the third with a two-out grounder up the middle. Butler and Escobar each had two hits on the night.
"It was all we could get, but it was all we needed," Yost said.
This was Hochevar's show throughout. He quickly mowed down the Astros in the first, striking out two. In the second, Hochevar put two runners on with one out, but induced Chris Johnson into a weak grounder back to the mound. Hochevar fired to Betancourt covering second, who threw Johnson out at first to complete the 1-4-3 double play.
Houston went down quietly in the third and fourth. After Johnson picked up the first Astros hit in the fifth, Jason Castro also singled. But Royals third baseman Mike Moustakas made a diving catch in foul territory on a bunt from Rodriguez and Jordan Schafer weakly grounded out to end the fifth.
In the sixth, Jed Lowrie walked and Carlos Lee doubled, giving the Astros two runners in scoring position with one out. Hochevar struck out Justin Maxwell and Brian Bogusevic to end the inning.
Johnson singled again in the seventh, but Butler, not known for his defense, started a 3-6-3 double play and Hochevar got a strikeout to keep Houston off the board.
The Astros charged in the eighth. With one out, Lowrie walked. Lee moved him to third with a single that nearly cleared the wall in left field. The first baseman also advanced to second on a throwing error by Alex Gordon.
Yost summoned Aaron Crow from the bullpen and Hochevar exited after his longest outing since Sept. 3, 2011.
"I wish we could've got him through it," Yost said. "I can't live with myself if he gives up the lead in the eighth inning with our [bullpen]."
Hochevar was especially disappointed with walking Lowrie.
"I was pretty upset with myself, but he put together a good AB," Hochevar said. "He made me throw some tough pitches and fouled off some tough pitches."
Crow struck out Maxwell to end the eighth and closer Jonathan Broxton worked a scoreless ninth for his 17th save.
Even after one of his best starts of the season, all Hochevar wanted to talk to his teammates about was his first Major League hit, a single through the right side of the infield in the second inning. Hochevar entered the game 0-for-13 at the plate in his career with nine strikeouts.
"It hadn't been pretty at all, so to finally get a knock was pretty awesome," Hochevar said.
But Hochevar won't make his living at the plate when the Royals finish Interleague Play. His stellar outing on the mound left a lot of Royals smiling in the clubhouse. The Astros also lauded Hochevar's stuff.
"The guy was throwing 2-0 breaking balls for a strike, he was hitting the outside corner," Astros first baseman Carlos Lee said. "He was pitching pretty good. We put some hits together but we couldn't get the big hit."
Yost was pleased with Hochevar's ability to pitch out of jams.
"That was a tremendous ballgame from Luke Hochevar," Yost said. "He's getting back to who he is."