At least the Phils made it competitive this time, coming up just short in a ninth-inning rally.
Trailing by 9-4, the Phillies got a one-out, three-run home run from Jimmy Rollins in the ninth inning off reliever J.C. Gutierrez.
Greg Holland, who blew a save Saturday by allowing three runs, including Kevin Frandsen's game-winning three-run double in a 4-3 loss, replaced Gutierrez.
Holland got Chase Utley to fly to center for the second out before surrendering singles to Ryan Howard and Michael Young, putting runners on first and second.
In came hard-throwing righthander Kelvin Herrera, who allowed an RBI single to Laynce Nix that cut the lead to 9-8 and put runners on first and second. The runners advanced to second and third on a wild pitch.
Herrera ended matters by striking out Erik Kratz on a 1-2 change-up. Kratz got behind, 0-2, and after the wild pitch made it 1-2, he fouled off five consecutive pitches before finally striking out.
"I battled him, and he ended up throwing a pretty good pitch - middle in - and it looked a little different than the others and he got me," Kratz said.
Although the Phillies (2-4) had several concerns entering the season, lefthander Cole Hamels wasn't expected to be one of them. But Hamels had his second straight subpar start.
He lasted just 52/3 innings, allowing eight runs (all earned) on nine hits. Hamels struck out two and walked four, throwing 106 pitches, 63 for strikes.
"I felt like he was throwing balls close to the plate, but his command was one of the big problems," manager Charlie Manuel said.
Hamels is 0-2 with a 10.97 ERA. It is just the second time in his career he has started a season 0-2, with the other coming in 2009.
"I am not giving the team the opportunity to win," Hamels said. "You score runs early and you want to keep the team in the ball game, and I wasn't able to do that."
The Phillies jumped to a 4-0 first-inning lead against Royals starter James Shields - the only pitcher to beat them in the 2008 World Series against Tampa Bay.
After infield hits by Ben Revere and Rollins to lead off the game, Utley drove in the first run with a single to shallow left. Following a Howard strikeout, the Phillies got RBI singles from Young and Domonic Brown, and a sacrifice fly from Kratz.
It was Young's first RBI as a Phillie.
Shields, who had eight strikeouts and no walks, did not allow another run, exiting after six innings.
Kansas City scored two in the third on Alcides Escobar's RBI double down the right-field line and Butler's RBI groundout to short.
The Royals took a 6-4 lead on Butler's first career grand slam in the fifth inning, over a leaping Brown in left field. The umpires originally called it a double, but a replay showed that it was a home run.
"I got the ball up and he hit it out of the park," said Hamels, who had never given up a grand slam with the Phillies.
Hamels departed with the Phillies trailing, 6-4, and with runners on second and third and two outs in the sixth inning.
Chad Durbin issued a walk and then a two-run single to Butler, continuing his early-season miseries. Jeremy Horst allowed an eighth-inning RBI single to Alex Gordon - which didn't look big at the time but proved to be the difference.
Contact Marc Narducci at email@example.com. Follow on Twitter @sjnard.