KANSAS CITY, Mo. -- Billy Butler discovered that what used to work still does.
Driving in four runs for the second time in three games, Kansas City's barrel-chested designated hitter went 3-for-4 while powering Kansas City past Oakland 5-2 on Tuesday night.
"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.
"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 key there is getting that second out," Greinke said.
Butler had two home runs and four RBIs 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."
Oakland LHP Josh Outman made his major league debut, going two scoreless innings with two hits and two strikeouts. He threw 32 pitches, 23 strikes. ... The A's have scored six runs or fewer in their last 38 games, one short of the franchise record set by the Philadelphia A's in 1924. ... The Royals have beaten Oakland five straight times.