KANSAS CITY, Mo. -- Matt Garza decided it was time to stop thinking and start doing.
The Rangers won for only the fifth time in 19 September games to remain a half-game behind Cleveland for the second AL wild-card berth.
The Royals, out of the playoffs since winning the 1985 World Series, dropped 3 1/2 games in back of the Indians.
Adrian Beltre got two hits and drove in a run for Texas.
Garza (10-6) was 0-3 with an 8.22 ERA in his first three September starts. He pitched four-hit ball before giving up Eric Hosmer's leadoff home run in the ninth and getting pulled.
"You're the only one who can do it," Garza said. "You're the one who has to wake up in the morning and look at yourself in the mirror. I wasn't happy with what I saw. I just got back to being comfortable, back to being who was I was. It's a lot funnier this way. I can enjoy it a little more."
The plan Garza and catcher A.J. Pierzynski had was to keep it unsophisticated.
"He tried to keep it simpler," Pierzynski said after Garza gave up nine runs on 13 hits and six walks in 8 1/3 innings in his previous two starts. "He talked about an overload of information. We do a great job here of scouting reports. Matt is a simple guy. He wants to know the basics. I think sometimes when you give him too much, I think he overthinks himself.
"I think he tried to keep it simple today and be as aggressive as he can. We talked between starts and he executed to perfection except for obviously that home run."
The simple method worked for Garza.
"I was trying to do too much," Garza said. "I've just got to keep it simple. That's kind of been my whole thing and it's kind of who I am. I just went out there with a game-plan of attack, trust my stuff and let's go. It's no time to work on anything anymore. Let's go and it felt good."
Garza struck out five and walked one. He is 4-5 in 12 starts since the Rangers acquired him on July 22 in a trade with the Chicago Cubs.
"We were a little more than off-balance," Royals manager Ned Yost said. "He was really good. He was really pounding the strike zone. He threw, I think, 70 strikes and 27 balls. He had a good fastball, a really good slider and a good chase pitch. He was ahead all night. He pitched a really good game."
After Hosmer's 17th homer, Joe Nathan relieved. The Texas closer struck out two for his 40th save in 43 chances. Nathan posted his 41st career save against the Royals.
Jeremy Guthrie (14-12) allowed three runs and seven hits in six innings. He has permitted six runs and 20 hits in 14 innings in losing his past two starts.
Beltre's .374 career batting average at Kauffman Stadium is the highest for an opposing batter with at least 150 plate appearances.
In the third, Guthrie's control betrayed him when he walked Andrus and Alex Rios on eight pitches, and both scored.
Beltre bounced an RBI single up the middle and Pierzynski had a sacrifice fly.
"If I get that ball (Beltre's single) maybe we get that double play and we're still playing," Royals second baseman Emilio Bonifacio said.
Craig Gentry had three hits and stole a base for the Rangers. He became the fourth different starting left fielder in as many games for Texas. The others were David Murphy, Joey Butler and Jim Adduci. ... Royals RHP James Shields, who starts Sunday, is 10-3 since June 28 after starting the season 2-6.