KANSAS CITY, Mo. -- Billy Butler discovered that what used to work still does.
"I got the mentality of `I'm going to let it rip and I'm going to stay through it,"' said Butler, who hit a three-run homer. "I don't care if I get jammed. I'm going to keep my hands inside. It's given me the ability to let balls get deeper and recognize pitches more instead of trying to hit them all out."
After falling into some bad habits, Butler had gone into a prolonged slump, even earning a brief stint back in the minors.
"That's just the way I've always hit," he said. "I got away from that earlier this year."
Zack Greinke (10-9) allowed two runs in seven innings for his first win in five starts, walking one and striking out eight. Greinke, who hadn't won since Aug. 2, had his most strikeouts since ringing up a season-best 11 against the A's on July 28.
Joakim Soria pitched the ninth for his 34th save, and his first since Aug. 15.
Butler homered to left in the first for a 3-0 lead. Mike Aviles was walked by rookie Gio Gonzalez (1-3) and Jose Guillen reached on left fielder Aaron Cunningham's error.
"In that situation, I'm looking for a ball up, to get in the air," Butler said. "That was a ball I was sitting on and I just happened to not miss it. The next time I could very easily foul that ball off. But when you're going good, you're going good. So I didn't miss it."
It was only the third victory in 15 games for the Royals, who were an AL-worst 7-20 in August. Oakland's 10-20 record was second-worst.
"It might be the worst month since I've been here," Greinke said. "It was a pretty bad month."
Daric Barton drove in two runs for Oakland and lacked only a double for the cycle. He had an RBI triple in the second, a solo homer in the fifth and a single off Soria in the ninth. He was 3-for-3 with a walk.
"I'd probably rather pitch to (Butler) than Barton, whatever's going on with him right now," Greinke said. "He had a great game. He hit a home run that almost went out of the stadium foul, too. He did everything."
Since August turned to September, Barton has turned his game around much as Butler has with his. After going 4-for-40, he has hit in 10 of his last 11 games.
"When I feel good, I feel good," Barton said. "So far, so good in September this year."
The A's had runners at second and third with one out in the fifth but Greinke got Rajai Davis and Ryan Sweeney on ground balls.
"The key there is getting that second out," Greinke said.
Butler had two home runs and four RBI in Detroit on Saturday night and has hit in eight straight games.
"He's a powerful kid and has a good swing," said Gonzalez, who went four innings in his sixth major league start and gave up only two hits - home runs by Butler and Ryan Shealy.
"You just tip your hat to a swing like that. I made a mistake pitch (on the homer) and he did what he had to do," Gonzalez said. "After that, I just kept the ball down and away."
Shealy, a September callup from Triple-A Omaha, hit a 3-2 offering from Gonzalez over the fence in right for his first major league homer since June 6, 2007.
"He kept nailing that same spot and I kept fouling them off," Shealy said. "That one was up a little bit more and caught more of the plate and I was able to get enough of it."