The Royals have won 18 of 22 to move 12 games above .500 for the first time since July 20, 2003.
The Royals took the season series, winning five of seven against the Athletics, who have the best record in the majors.
Aoki's two-run triple put the Royals ahead 5-3. Butler's single scored Aoki and Alcides Escobar. Jarrod Dyson fouled off four consecutive pitches before hitting an RBI single to right for the first run of the inning.
Right-hander Jeff Samardzija (3-2) took the loss, giving up four runs, three earned, and eight hits in 6 2-3 innings.
He left with a 3-2 lead, but Ryan Cook failed to hold it, facing three batters and all scored. Cook's streak of 21 consecutive scoreless innings ended.
Aaron Crow (6-1), the third of six Kansas City pitchers, picked up the victory, retiring the only batter he faced.
Starter James Shields gave up three runs and seven hits in six innings and has a 1.94 ERA in his past eight starts. Greg Holland earned the final two outs for his 36th save in 38 opportunities.
The A's scored two runs in the sixth when Dyson lost Josh Reddick's high fly in the sun for a triple, which scored Stephen Vogt.
Alberto Callaspo drove in two Oakland runs with a single and a sacrifice fly.
Athletics: RHP Jason Hammel will start the opener of a weekend series at Atlanta. The A's last played at Atlanta in 2008, losing two of three.
Royals: LHP Danny Duffy will start Friday at Minnesota, where the Royals have lost four of six this season. The Royals play their next nine on the road, all against clubs in last place in their division — Minnesota, Colorado and Texas.
Athletics: SS Jed Lowrie is likely bound for the disabled list with a broken right index finger. Lowrie, who injured it Aug. 4, returned to San Francisco to have his finger checked.
Royals: 1B Eric Hosmer is awaiting the result of a MRI on whether he will be able to resume swinging. He is on the disabled list with a fractured right finger.