Cabrera doubled off the scoreboard to score Hanley Ramirez from first base with no outs in the 11th inning, and the Marlins beat the Phillies 5-4.
Tempers flared in the fourth inning, when the Marlins' Dontrelle Willis began shouting at the Philadelphia dugout. The benches and bullpens emptied, and at least one punch was thrown by an unidentified Florida player, but no ejections resulted from the confrontation.
"Sometimes you need a little fire," said Willis, angry because he thought the Phillies' Jon Lieber intentionally threw behind him earlier. "I'm not going to back down from anything. ... It's over with. We won. So keep moving."
The teams don't meet again until Aug. 7.
Ramirez singled to start the 11th against Francisco Rosario (0-3). Cabrera then hit a towering fly, and by the time center fielder Aaron Rowand retrieved the ball, Ramirez was rounding third with his fist raised in triumph.
The injury occurred with Nunez batting and Jimmy Rollins running from first base. Nunez swung and missed, and when Olivo threw to second, he hit Nunez with his follow-through. Nunez crumpled to his knees but then walked off the field.
The Marlins won for the fifth time in six games. For the fourth time in the past week, Philadelphia missed a chance to climb above .500 for the first time this season.
Emotions began to escalate when Lieber hit Aaron Boone with a pitch in the second inning. Three batters later, Lieber threw a pitch behind Willis.
"I was just kind of all over the place," Lieber said.
In the fourth, Willis threw behind Lieber. The next batter grounded out to end the inning, but as Willis walked off the mound he shouted at the Phillies and waved his glove at them.
"I've got to defend myself, bottom line," Willis said.
"He was walking out staring at our dugout yelling," Philadelphia's Rob Barajas said. "You just don't do that. ... Tempers are going to flare when something like that happens."
The teams traded shoves and words near third base. Marlins manager Fredi Gonzalez -- ejected in the third inning for arguing a call -- returned to the field to help restore order.
"Boys being boys," Gonzalez said. "I shouldn't have gone out there, but I went out there to break things up. I'm sure I'll get a letter and a phone call pretty soon."
Marlins left-hander Scott Olsen was still shouting at the Phillies as he returned to the dugout. Olsen last year said he hated the Phillies because they dominated the Marlins, and he angrily screamed at Philadelphia's Chase Utley from the mound after walking him Tuesday.
Lieber allowed four runs and six hits in five-plus innings. Willis threw a season-high 113 pitches in 6 1/3 innings, allowed seven hits and departed with a 4-3 lead.
"I was real impressed I was able to calm myself down and get quality outs and keep us in the game," Willis said. "We're not here to fight teams. We're here to get W's so we can be in the playoffs."
- Rain delayed the start for 1 hour, 25 minutes, and more rain fell during the game.
- Gonzalez's ejection was his first as a manager.
- Barajas had two hits and improved to 5-for-9 against Willis.
- Lieber struck out three to reach 1,500 for his career.