PHILADELPHIA -- Dontrelle Willis won without his best stuff -- again.
Cabrera was 5-for-5 with four singles and a solo homer.
"He's half-man, half-amazing," Willis said of the 24-year-old third baseman.
Willis (5-1) allowed nine hits and five runs. He gave up five runs in a win over Atlanta on Monday, and has a 5.35 ERA in six starts. But the Marlins have averaged 8.2 runs when he's on the mound.
"The guys won me a victory," he said.
Aaron Rowand extended his career-best hitting streak to 16 games and Rod Barajas homered for the Phillies, who got a poor outing from Adam Eaton (2-2).
Eaton allowed seven runs and 10 hits in 4 1/3 innings. The right-hander hasn't lived up to his big contract, posting a 7.71 ERA in five starts. The Phillies gave Eaton a $24.5 million, 3-year deal, even though he'd never won more than 11 games in a season.
"It's frustrating, definitely not a good game for me," Eaton said. "I just didn't pitch well."
The Marlins quickly went ahead 3-0 against Eaton in the first and never trailed. Dan Uggla's two-run homer in the second extended Florida's lead to 5-1.
The Phillies scored single runs in each of the first three innings. Rowand doubled and scored on Jimmy Rollins' single in the first. Barajas hit a solo shot in the second. Chase Utley's two-out single drove in Rowand to cut it to 5-3 in the third.
Consecutive doubles by Willingham and Joe Borchard put the Marlins ahead 6-3 and chased Eaton in the fifth. Alfredo Amezaga added a run-scoring single to make it 7-3.
Utley had a sacrifice fly in the fifth, but Willingham's three-run homer off Francisco Rosario put it out of reach at 10-4.
"This is a good park to hit in," Cabrera said. "Hit a ball hard, you have a chance for a home run."
Willis pitched out of trouble in the fourth after Abraham Nunez singled and Barajas blooped a double to right with one out. Nunez was thrown out at the plate trying to score on Eaton's grounder to third baseman Cabrera and Rowand struck out to end the inning.
Though the Phillies (10-13) have won six of eight, the loss assured them a fourth consecutive losing April.
"It's disappointing, but it means we have to have a big May," manager Charlie Manuel said.
The Marlins had a season-high 17th hits. ... Cabrera is the 10th Marlins player to have five hits in a game. The last was Uggla on Sept. 11, 2006 against the Mets. ... LF Pat Burrell threw Hanley Ramirez out trying to score from second base on a single in the fourth for his third outfield assist. The Phillies have 10 outfield assists. ... Willis surpassed A.J. Burnett to become the franchise leader in innings pitched with 854 1/3 innings. ... Rollins has 23 consecutive stolen bases without being caught, dating to last season.