PHILADELPHIA (AP) -- Billy Butler hit a grand slam that was confirmed by video review and tied a Royals franchise record with seven RBIs, and Kansas City held on for a 9-8 win over the Philadelphia Phillies on Sunday.
Butler's fifth-inning homer, the first slam of his career and the first ever allowed by Philadelphia left-hander Cole Hamels, put Kansas City ahead 6-4.
James Shields (1-1), acquired in an offseason trade with Tampa Bay, earned his first victory as a Royal. The right-hander gave up hits to five of the first six batters in a four-run first inning, but settled down to blank the Phillies for the next five innings on five hits while striking out eight and walking none.
Butler came through with the bases loaded again in the sixth, hitting a two-run single off Chad Durbin. With the hit, Butler became the 12th Royals player have seven RBIs.
Chris Getz opened the fifth with a double to right, Alex Gordon reached on an infield single and Alcides Escobar walked to load the bases and set up Butler.
Hamels (0-2) appeared visibly upset throughout the inning, perhaps disagreeing with some close balls and strikes calls by home-plate umpire Eric Cooper. His mood didn't improve when Butler launched a 1-0 fastball just over the metal fence that tops the green padded wall in left field. The ball hit off a wall behind the field wall and bounced back into play.
The umpires originally ruled that the ball hit off the top of the wall before going to replay to confirm that it was a homer.
The Phillies looked on their way to the loss trailing 9-4 entering the ninth before rallying.
Jimmy Rollins hit a three-run homer to right off J.C. Gutierrez. Greg Holland relieved Gutierrez with one out in the ninth. He got Chase Utley to pop out to center before singles by Ryan Howard and Michael Young, who had four hits, put runners on first and second with two outs.
Kansas City manager Ned Yost then lifted Holland, who blew the save in Saturday's 4-3 loss to Philadelphia, and replaced him with right-hander Kelvin Herrera to face pinch-hitter Laynce Nix.
Nix singled home Howard to pull Philadelphia to 9-8 and Young and Nix advanced to second and third on a wild pitch. But Herrera struck out Erik Kratz in a nine-pitch at-bat to earn his first save.
The Phillies struck out 14 times Sunday.
Hamels struggled for the second straight start, allowing eight runs on nine hits with four walks and two strikeouts in 5 2-3 innings. Hamels opened the season by giving up five runs on seven hits in five innings in Philadelphia's 7-5 season-opening loss at Atlanta last Monday night. The three-time All-Star has a 10.97 ERA after two starts.
Hamels looked on his way to an easy sixth inning with two outs and Shields batting, but the Royals pitcher lined a single to right. Gordon followed with a double to right, moving Shields to third and prompting Phillies manager Charlie Manuel to lift his ace for Durbin. The right-handed reliever walked Escobar to load the bases before Butler laced a single to left-center to plate two.
Ben Revere had three hits for Philadelphia, and Gordon had three hits for Kansas City.
NOTES: The Phillies open a three-game home series against the Mets at 7:05 Monday night. New York right-hander Matt Harvey (1-0, 0.00) is scheduled to face Phillies righty Roy Halladay (0-1, 13.50). . Center fielder Revere has played in 166 straight games without an error. His last error was Aug. 15, 2011, at Detroit while a member of the Twins. . Kansas City plays its home opener on Monday against Minnesota, with Twins righty Kevin Correia (0-0, 2.57) scheduled to face Royals right-hander Ervin Santana (0-1, 6.00). The Royals began last season by dropping their first 10 home games. . Utley and Rollins have started 962 games together as double-play partners, ranking second among active combinations behind the Yankees' Derek Jeter and Robinson Cano (1,036). . Shields pitched well in Kansas City's season opener at the White Sox last Monday, but was the hard-luck loser in a 1-0 loss.