PHILADELPHIA -- Jonathan Papelbon was ready when Charlie Manuel went to his closer a bit earlier than he usually does.
"Anytime Charlie calls on me, I'm ready, willing and able," Papelbon said. "I look forward to every opportunity."
The Marlins brought the tying run to the plate in the ninth but center fielder John Mayberry Jr. made an acrobatic catch on pinch-hitter Greg Dobbs' fly ball to end the game. Mayberry got turned around the wrong way, but reached out to snare the liner just in front of the warning track before rolling to his back.
"Papelbon said I made an easy catch look hard so we'll go with that," Mayberry said. "I don't think I got any style points, but I'm happy to make the play."
Said Manuel: "I'm glad he caught it. He turned a few ways, though. I don't think you teach that route. But he caught it; that's the big thing."
Kyle Kendrick (2-4) allowed eight hits in 5 1/3 innings but held Miami to two runs. The right-hander, who was coming off a seven-hit shutout against St. Louis on Monday, struck out four and walked three.
"I got in some jams and was able to get out of jams," Kendrick said.
Mark Buehrle (5-5) gave up four runs and a season-high 11 hits in five innings for the Marlins. The left-hander was 4-0 with a 3.19 ERA in his previous five starts.
"Just a bad day at the office," Buehrle said. "I gave up too many hits early and didn't go long in the game."
Luna hit a run-scoring double in the seventh to give the Phillies a 6-2 lead. But Morrison and pinch hitter Ruggiano started the eighth with consecutive home runs against lefty Antonio Bastardo.
Morrison drilled an 0-2 pitch to deep right before Ruggiano belted the next pitch over the wall in left-center for his first homer of the season in his second at-bat with Miami.
Bastardo walked the next batter, John Buck, and was replaced by Jake Diekman. The left-hander struck out Chris Coghlan, then gave up consecutive singles to load the bases before being relieved by Papelbon.
Manuel was out of right-handed relievers.
"I wanted to win the game ... and I wanted to put my best on the mound," Manuel said, adding that he wouldn't make a habit of doing it. "This early in the season, if you're not careful, you can overwork your guy. If you do it every now and then, that's OK."
After getting Omar Infante to pop out to shortstop, Papelbon struck out Hanley Ramirez looking. Ramirez reacted angrily to the called third strike, barking at umpire Kerwin Danley and tossing his equipment behind home plate.
"We had too many chances," Marlins manager Ozzie Guillen said. "We got a lot of hits but not the big one. When you don't take advantage of that, you don't deserve to win the game."
The game was delayed by rain for 48 minutes in the top of the fifth inning.
Luna hit a two-out, two-run single in the first, and Pence connected in the fifth to help Philadelphia build a 4-1 advantage.
Giancarlo Stanton, who had 12 homers and 30 RBIs while hitting .343 in May, staked Miami to a 1-0 lead with a run-scoring double in the first.
The Marlins loaded the bases in the third and fourth but failed to score. Morrison grounded into an inning-ending 3-6-1 double play in the third, and Infante lined out to Kendrick to end the fourth.
Philadelphia right-hander Jose Contreras left in the seventh with right elbow soreness. The 40-year-old Contreras was making his 17th appearance since offseason surgery on his right elbow.
After throwing his fifth pitch of the inning, an 89 mph fastball, Contreras grabbed his right arm and staggered to the ground on the grass between first and second before leaving the game.
Philadelphia general manager Ruben Amaro Jr. said Contreras would have further tests Saturday and likely would be placed on the disabled list.
"I think he got hurt pretty bad," Manuel said.
Miami SS Jose Reyes went 3 for 4, extending his hitting streak to 12 games. ... Philadelphia OF Shane Victorino was not in the starting lineup for the first time this season after receiving a cortisone shot Friday to relieve discomfort in his right hand. Victorino entered as a defensive replacement in the eighth. ... Phillies RHP Vance Worley, on the DL with inflammation in his right elbow, threw a bullpen session and could start Monday's game against the Dodgers. ... Phillies slugger Ryan Howard said he is making progress in his rehabilitation from an Achilles' tear that has sidelined him all season. ... Marlins RHP Ricky Nolasco (5-3, 4.26 ERA) is scheduled to face Philadelphia LHP Cole Hamels (8-1, 2.43) on Saturday afternoon.