The victory breaks a five-game losing streak for the Royals, who have won just seven of their last 23.
Greinke (9-3) allowed a run in the first before pitching seven shutout innings for his first win since May 26. He gave up eight hits - all singles.
The score was tied 1-all in the third inning before Butler’s solo shot to the Crawford Boxes in left field put Kansas City ahead.
Greinke, who was facing the Astros for the first time, allowed three straight singles with two outs in the first, capped by Miguel Tejada’s run-scoring hit that put Houston ahead 1-0.
Greinke replaced in the ninth by Joakim Soria who allowed singles by Tejada and Lance Berkman before striking out Ivan Rodriguez and Kaz Matsui, then ending the game with a groundout by Jason Michaels.
Astros starter Russ Ortiz (3-3) allowed five hits and two runs in seven innings.
Upton, Diamondbacks continue Rangers' slide
PHOENIX - Justin Upton homered and doubled, and Max Scherzer won his third straight start as the Arizona Diamondbacks defeated Texas 8-2 on Tuesday night, sending the Rangers to their fifth straight loss.
Scherzer (5-4) worked out of jams for most of the night, allowing two runs, seven hits and a walk in six innings. He struck out seven.
The slumping Rangers hit a new low in the sixth, handing the Diamondbacks a gift run on a play straight out of Little League.
With two outs and Lopez on third, Rangers catcher Jarrod Saltalamacchia fired his return throw over 6-2 pitcher Jason Jennings’ head. Jennings hustled after the ball, but Lopez dashed home without a throw.
Texas starter Matt Harrison (4-5) lasted only 3 2/3 innings.



