Greg Holland came on in the ninth to try to protect a two-run lead and nail down what would have been the Royals' third straight win. He promptly walked the bases loaded with nobody out.
Holland (0-1) almost escaped the jam, striking out both Domonic Brown and John Mayberry. Frandsen, however, ripped the first pitch he saw to center for the bases-clearing double.
That comeback made a winner out of Antonio Bastardo (1-0), the third Philadelphia pitcher of the game who worked a scoreless top of the ninth.
Kansas City starter Luis Mendoza was the victim of Holland's blown save, having been in line to get the win after allowing a run on two hits over six innings.
Kansas City put men on second and third with nobody out in the fifth and then came up with runs on both a ground out by Miguel Tejada and a single from Elliot Johnson.
Tejada doubled home Kansas City's third run in the seventh.
Costly malfunction causes beer flood at Boston-area brewery
Megyn Kelly: Santa Claus and Jesus are both white men