PHILADELPHIA -- Kevin Frandsen rounded first after his big hit, looked up to see all the runners circling the bases and prepared himself for a celebration.
Frandsen hit a bases-clearing, three-run double with two outs in the ninth off closer Greg Holland to lift the Phillies to a 4-3 victory over the Kansas City Royals on Saturday night in front of the smallest crowd in Philadelphia in four years.
The Phillies had just two hits and trailed 3-1 to start the inning. Holland (0-1) walked Chase Utley, Ryan Howard and Michael Young to load the bases. He then struck out Domonic Brown swinging and fanned John Mayberry Jr. looking.
But Frandsen ripped a first-pitch fastball to right-center to knock in all three runners. Young slid in safely well ahead of the throw and the dugout emptied as players mobbed Frandsen.
"When you see Ryan Howard run at you full speed, that's weird and you get scared," said Frandsen, who pinch hit for Humberto Quintero. "It's a surreal moment, one that you hope to repeat."
Frandsen dodged the 6-foot-4, 250-plus pound Howard, by the way.
Royals starter Luis Mendoza threw six stellar innings, and the Royals' bullpen went into the ninth with seven hitless innings in the series.
"New team, new season. I had some butterflies," Lannan said. "I did my best to control it. I'm trying every game to keep the team in the game."
Mendoza allowed one run and two hits, striking out seven.
The Phillies are 2-3 and were looking more like the team that went 81-81 last year after winning five straight NL East titles from 2007-11.
Then came the ninth-inning rally. There weren't many fans left to witness it, however.
A crowd of 39,475 at Citizens Bank Park was the first under 40,000 since April 29, 2009, when 36,351 came out for a game against Washington. The Phillies led the majors in attendance each of the last two seasons.
"You don't want to start 0-2 at home, especially in front of these fans with the energy they bring," Frandsen said.
Lannan was cruising along with a no-hitter until the fifth. He hit Lorenzo Cain with a pitch to start the inning and Jeff Francoeur followed with a double down the left field line. Miguel Tejada drove in a run with a groundout to second base and Elliot Johnson singled in a run for a 2-0 lead.
Making just their third-ever trip to Philadelphia, the Royals will try to win the rare interleague series Sunday afternoon. They last played here in 2004.
The Phillies beat Kansas City to win the 1980 World Series and claim the franchise's first of two championships. They clinched the title with a victory in Game 6 at old Veterans Stadium.
Lannan retired the first nine batters he faced before Alex Gordon reached on second baseman Utley's fielding error in the fourth. Lannan spent his first six seasons with Washington. He was signed as a free agent by the Phillies not for his performance against them. Lannan was 3-13 with a 5.53 ERA against the Phillies. He entered the game 39-39 with a 3.80 ERA against the rest of the majors.
The Phillies cut it to 2-1 when Ben Revere lined an RBI single off third baseman Tejada's glove with two outs in the bottom half.
Francoeur led off the seventh with a double to right-center and Tejada followed with a double down the right-field line to make it 3-1.
"We shot ourselves in the foot," Royals manager Ned Yost said. "We walked four guys and they scored."
Billy Butler started at first base instead of Eric Hosmer, who was 4 for 5 with three RBIs on Friday. Yost planned to start Butler, the team's DH, against Lannan instead of the left-handed hitting Hosmer. ... Francoeur is 15 for 28 off Lannan with six doubles. ... Phillies SS Jimmy Rollins received his fourth NL Gold Glove Award before the game. ... RHP James Shields (0-1) faces LHP Cole Hamels (0-1) in the series finale. Shields is going for his first win with the Royals.