MIAMI -- With an eight-run lead in the ninth, the Florida Marlins managed to hang on.
Beckett (15-8) won his third start in a row, allowing five hits before departing with a 9-2 lead. The bullpen struggled, but there was no repeat of Saturday's collapse when the Marlins blew Dontrelle Willis' 2-0 lead and committed four errors in the ninth as Philadelphia scored 10 runs.
"We redeemed ourselves a little bit for that terrible exhibition Saturday," manager Jack McKeon said. "It shows they're not ready to give up."
Still 2½ games behind NL wild-card leader Houston, the Marlins averted a series sweep and snapped a four-game losing streak that matched their longest of the year. The Phillies fell 1½ games behind the Astros with two weeks to go.
Six Philadelphia pitchers gave up 16 hits and nine walks. Rookie starter Eude Brito (1-1) lasted only 2 1/3 innings.
"You know what? We just stunk up the joint," manager Charlie Manuel said. "We definitely can put this one behind us."
Jimmy Rollins tripled in the seventh to extend his career-best hitting streak to 24 games, the longest by a Phillies player since Willie Montanez hit in 24 consecutive games in 1974. There have been only four longer streaks in the club's 123-year history, and none since 1930.
"I was happy I got a triple -- not that I wouldn't have been satisfied with anything," Rollins said.
The Marlins' injury-plagued infield was further depleted when second baseman Luis Castillo left in the seventh inning with a tight right hamstring. His status is day to day.
Florida was already without shortstop Alex Gonzalez (elbow) and infielder Damion Easley (ankle), both likely sidelined the rest of the regular season. Rookie shortstop Robert Andino, making just his second career start, had a double and an RBI single and scored a run.
Despite the rout, there were boos from the crowd of 25,208 in the eighth when Florida committed two errors and gave up three runs to stir memories of Saturday's debacle.
Cabrera had a two-run single and two-run double for the Marlins, who ended a stretch in which they went 1-for-25 with runners in scoring position. Cabrera broke the team record for total bases in a season with 327, surpassing Gary Sheffield's 324 in 1996.
Beckett threw his second pitch to the backstop, needed 24 pitches to get through a scoreless first and walked four before departing after 114 pitches. But he stranded four runners in scoring position and improved to 10-2 at home in 14 starts this season.
"I felt like when I needed to, I did a pretty good job," Beckett said. "Everybody here likes to play in these kind of games, because you're playing for something."
Brito, making his fourth major-league start, gave up five hits, three walks and three runs.
- Beckett and Willis (21-9) give the Marlins two 15-game winners for only the second time. Alex Fernandez and Kevin Brown reached the milestone for the 1997 World Series champions.
- The Phillies finished 10-9 against Florida, winning the season series for the first time since 2001.