Alex Gordon drove in a run while going 3-for-4 with three runs scored for Kansas City, which built a 9-4 lead and then weathered a Phillies ninth-inning comeback.
James Shields (1-1) notched his first victory for the Royals, allowing four runs on 10 hits while striking out eight over six frames as Kansas City took the rubber match of a three-game series.
The Phillies scored four times in the ninth but Kelvin Herrera struck out Erik Kratz with the tying run on third to get the save.
Philadelphia's Cole Hamels (0-2) was pounded for a career-high eight earned runs on nine hits and four walks, his second straight rough outing to start the year.
Celebrity Families of 2014 [PHOTOS]