Brian Anderson drove in three runs with a double and his 11th homer , and Miami snapped Philadelphia's four-game winning streak with a 6-2 victory Friday night.
The Marlins have the league's worst record but beat the Phillies for the fourth time in a row, including a three-game sweep last weekend, while holding them to 10 runs.
Even Miami manager Don Mattingly found it difficult to explain.
''You never know exactly how it works and why, right?'' he said. ''You have trouble with certain teams; other teams we've been better against. In general we've thrown the ball good (against Philadelphia), and it has kept us in games.''
Elieser Hernandez (1-2), making his fourth start of the season, allowed two runs in 5 2/3 innings to earn his first win in 10 career starts. He improved his lifetime record to 3-9, with his last victory coming in relief versus the Phillies last July.
''I give credit to them - they're great hitters and a great team,'' the Venezuelan said through a translator. ''But I also try to have fun.''
Vince Velasquez (2-5) hit his first career homer but allowed four runs in 4 1/3 innings.
''I take the L pretty much myself,'' he said. ''I didn't do my job.''
Miami's Garrett Cooper had three hits, including two RBI singles, and hiked his average to .323. JT Riddle added his sixth homer.
The Phillies were coming off a four-game sweep of the New York Mets and rallied to win each game, but they couldn't muster a comeback against Miami. The first five batters in the Phillies' order went 1 for 17 with eight strikeouts and no extra-base hits.
''When we hit home runs, they come in bunches,'' manager Gabe Kapler said. ''We're a good enough team that when we hit them, they're going to come against anybody. We just didn't swing the bats well tonight. It's that simple.''
Anderson's two-out RBI double put the Marlins ahead to stay in the first. They scored again with two out in the third when Cooper doubled and Anderson homered off Velasquez to make it 3-0.
''It wasn't Vince's best performance,'' Kapler said. ''Anderson took some really good swings off of him - gave him a really hard time.''
Maikel Franco doubled in the fifth inning for the Phillies' first hit, and Velasquez followed with a homer just inside the left field foul pole. That's all they could muster against Hernandez, who had seven strikeouts and fanned J.T. Realmuto three times.
Four relievers combined to complete the four-hitter.
PHILLIES: RHP Tommy Hunter (elbow), who had been sidelined all season, was activated from the injured list and pitched a perfect eighth. RHP Fernando Salas was designed for assignment.
MARLINS: Before the game, the Marlins reinstated C Jorge Alfaro from the concussion injured list. They placed RHP Tayron Guerrero (right middle finger blister) on the injured list retroactive to Thursday, optioned C Wilkin Castillo to Triple-A New Orleans and recalled RHP Jeff Brigham from New Orleans.
Marlins: LHP Caleb Smith (hip) is scheduled to pitch Sunday for Double-A Jacksonville, and it's expected to be his final rehab start before rejoining Miami.
Marlins: RHP Jordan Yamamoto (3-0, 0.95) will try to beat the Phillies for the second time in six days Saturday. He's the first Marlins pitcher ever to win his first three career starts.
RHP Zach Eflin (7-7, 3.26) gave up a season-high 11 hits in five innings in his last start Monday but went five innings to beat the Mets.
More AP MLB: https://apnews.com/MLB and https://twitter.com/AP-Sports
Follow Steven Wine on Twitter: http://twitter.com/Steve-Wine
Copyright 2019 by STATS LLC and Associated Press. Any commercial use or distribution without the express written consent of STATS LLC and Associated Press is strictly prohibited.