Altuve beat out a throw home from third baseman Mike Moustakas on Chris Carter's fielder's choice in the seventh inning off reliever Kelvin Herrera, sliding around catcher Salvador Perez's swift tag. Altuve also completed an early three-run comeback with a game-tying RBI single in the fifth.
"I knew it was a close play," Altuve said. "With those plays, you never know if you are safe or not. But I was hoping to be safe because I know our bullpen is really good and I think that run will be enough to win the game."
Jarrod Dyson's two-run triple knotted the game at 5 in the top of the seventh as the Royals squandered an early 3-0 lead after a two-run homer by Kendrys Morales in the first and an RBI single by Alex Rios in the second.
Carter and Marwin Gonzalez hit solo homers off Royals starter Edinson Volquez, who was rock solid before the four-run fifth inning. He got a no-decision after lasting five innings and allowing five runs on eight hits.
"It just got away from him [in the fifth], he got some pitches up, especially his curveball," Royals manager Ned Yost said. "He pitched really good up until then."
Volquez's counterpart, Vincent Velasquez, lasted 6 1/3 innings while striking out seven and allowing four runs in a fifth straight no-decision.
"We hung in there, we battled back against one of the premier bullpens in the league to scratch out a run without hitting the ball out of the infield," Astros manager A.J. Hinch said.
MOMENTS THAT MATTERED Final audition: Altuve was the lynchpin to the Astros' narrow victory. The Astros second baseman slapped three straight singles off Volquez -- the last of which plated a run in Houston's four-run fifth inning -- and swiped two bases to give him an AL-leading 23 for the season. The last steal, after he was hit by a pitch in the seventh, proved crucial in plating the deciding run, and that was all that mattered to Altuve when asked about any All-Star aspirations. More >
"We won the game," Altuve said. "You just want to win the game. When they say the All-Star Game, we'll talk about it, but like I said my priority right now is to keep playing for my guys and keep playing really good."
Herrera errant: The shutdown reliever looked mighty mortal for the second outing in a row. He plunked Altuve with a 98-mph fastball in the seventh inning, and Altuve eventually came around to score. Evan Gattis also rocked what should have been a RBI hit, but it careened off Herrera to delay the go-ahead run. Herrera has yet to give up multiple runs in a game, but he's now allowed runs in consecutive appearances for the first time in 2015. More >
"He came in and was just flying open the first two hitters, ended up hitting Altuve," Yost said. "He made an adjustment and was really good after, but … the hit to Altuve just hurt him."
Mashing Morales: Entering the game, the Royals had been shutout for 18 innings in Houston. Morales made sure that wouldn't last. The cleanup hitter mashed a two-run homer into the left-field seats in the first inning. It was his AL-best 37th two-out hit this season, and he now has 50 RBIs, 26 coming with two out.
Velasquez valiant: After surrendering his fourth hit in just one inning of work -- an RBI single to Alex Rios with none out in the second -- Velasquez retired 15 of the next 17 batters he faced, finding his fastball command to work into a groove and match the longest outing of his career at 6 1/3 innings. Reliever Josh Fields surrendered the lead in Velasquez's absence, giving him five no-decisions in his first five starts -- a Major League record he shares with Hideo Nomo, Marc Valdes and Chris Brock.
"Giving up those three runs, I had to put the foot down," Velasquez said. "Try to go out there and get my guys back in the dugout, and the offense did a phenomenal job of playing small ball and having good at-bats, and helping me out and saving me the loss. It's not whether I win or lose, it's a team win."
Astros center fielder George Springer exited in the sixth inning with a right wrist contusion after he was plunked by Volquez in the fifth. Springer stayed in the game to run the bases, scored on Evan Gattis' RBI single, and played defense in the sixth, but Hinch lifted him for pinch-hitter Domingo Santana in the home half of the sixth. More >
"We sent him for tests and I'm not optimistic that he's going to avoid the DL," Hinch said.
Royals manager Ned Yost lost a replay challenge in the seventh inning, when Altuve was ruled safe after avoiding Perez's tag at home plate. After a review of 4 minutes, 10 seconds, the call was ruled as stands.
"I thought it was close, but it was tough to tell," Yost said. "Ball was a little down the first-base side and Sal had to reach back for it, so it was bang-bang to me. The one they showed up on the board, it looked like he was safe, but I knew there were some different angles."
WHAT'S NEXT Royals: Right-hander Chris Young will start the opener of a four-game set against the AL Central-rival Twins at Kauffman Stadium on Thursday at 7:10 p.m. CT. Opponents are batting just .192 against Young this season in 16 appearances, including 11 starts.
Astros: Following on off-day on Thursday, right-hander Dan Straily will be recalled from Triple-A Fresno and make his first start of 2015 in Friday's series opener against the Red Sox at 6:10 p.m. CT. It's his second career start at Fenway Park, as he allowed two earned runs in 4 2/3 innings in his only other appearance.