Hunter Pence belted a two-run homer and Hector Luna drove in three runs as the Phillies held off the Marlins, 6-4, snapping Miami's three-game winning streak.
The Marlins showed fight, battling back from four runs down behind successive homers from Logan Morrison and Justin Ruggiano in the eighth. But on a night Miami had 13 hits, the club left 12 on base and went 1-for-13 with runners in scoring position.
"Too many chances. We did not deserve to win this game, to be honest," Marlins manager Ozzie Guillen said. "We had a lot of hits. We don't have the big ones. The opportunity was there. Bases loaded. Man on third. When you don't take advantage of that, that's the way games are going to end. We had good at-bats. We had men on base. We don't have the big hit."
The game was delayed 48 minutes due to rain, with the Phillies leading, 2-1, in the top of the fifth. Once play resumed, Pence provided a big blow, connecting on a two-run homer off Mark Buehrle, who had a string of four straight winning decisions snapped.
Philadelphia's Jonathan Papelbon worked 1 2/3 innings, entering with the bases loaded and one out in the eighth, to log his 15th save.
Jose Reyes had three hits, and pushed his hitting streak to 12 games.
"We had a lot of opportunities today, but we were unable to come through," Reyes said. "I believe we battled. We made it tough on them. They know there are not going to be any games easy with us. We're going to play all nine innings, that's good to see."
Typifying the night was the final out.
Ruggiano singled with two outs, and pinch-hitter Greg Dobbs blasted a liner to deep center. John Mayberry Jr. dashed straight back and twisted a couple of different ways before reaching out and making an acrobatic catch.
"Perfect route. Perfect angle. Perfect everything," quipped Mayberry.
Did Guillen think the ball would be caught when it left Dobbs' bat?
"In the beginning, no," Guillen said. "In the middle, yes, at the end, what a lucky guy. Philadelphia's night tonight. Balls bounced their way today. That kid made a heck of a play."
During the rain delay, Buehrle stayed loose by throwing in the cage with backup catcher Brett Hayes.
When play resumed, Polanco doubled to right and Pence smacked a changeup over the wall in left, making it 4-2.
"Come out that inning, threw a great changeup to Polanco, he hits it the other way for a double," Buehrle said. "It was about eight inches off the ground with Pence. He's a hacker and swings at a lot of stuff. It was a low changeup. I wish it wouldn't have cut, but it did, and he hit it for a two-run homer."
Miami got back into it in the eighth on the consective home runs by Morrison and pinch-hitter Ruggiano. It was the first time this season Miami had connected back to back. Ruggiano, in his second at-bat since being traded to the Marlins from the Astros, provided the club's second pinch-hit homer of the year.
Donnie Murphy previously connected on April 30 against Arizona.
The Marlins kept the pressure on, loading the bases with one out. The Phillies went to Papelbon, who got Omar Infante to pop out to short. The inning ended with Hanley Ramirez taking a 2-2 split-finger fastball for strike three.
Ramirez disputed the call with Kerwin Danley, and he was be slapped with an equipment fine for spiking his helmet.
"The only thing I can see from the dugout is high," Guillen said. "I can't see sides. I don't know exactly what it was."
Buehrle threw 52 pitches before the rain interrupted the action. He exited after 79 pitches.
Picking up where he left off in May, Giancarlo Stanton stayed hot on the first day of June. In the first inning, he laced an RBI double, which scored Infante from first.
"For Buehrle, it was a struggle," Guillen said. "It wasn't a good day for him. This kid battled. Even though he wasn't sharp, he gave up a lot of hits, but he kept the game close. There is nothing you can do about it. I'm not going to say the offense was shut down. We got a lot of hits. We didn't get the big hit."