Jesus Aguilar hit a long solo home run and added a sacrifice fly for Miami.
Alcantara (3-5) gave up one run and six hits, striking out six. The right-hander allowed a leadoff double to Adam Frazier in the eighth, but retired the next three batters to finish his outing.
It was the second time in his past three starts that Alcantara went eight innings.
The Marlins last lost eight straight from May 15-22, 2015. They blew two eighth-inning leads in the first three games this series, a one-run lead in a 5-3 loss Thursday and a three-run lead before losing 8-7 in 12 innings Saturday.
Yimi Garcia pitched a perfect ninth inning for his 10th save.
Pirates starter Chad Kuhl (0-3) allowed two earned runs and three hits in six innings.
Shortstop Erik Gonzalez fumbled a toss while covering second after Corey Dickerson grounded to Frazier at second base in the sixth, letting the Marlins take a 2-1 lead. Jazz Chisholm Jr. scored from second, though he had some trouble running home after getting hit on right foot with pitch to reach base.
Aguilar followed with a sacrifice fly to tack on another run.
Aguilar hit a 444-foot home run, his 12th, into the left field bleachers to tie it 1-all in the second.
After giving up an RBI double to Colin Moran in the first inning, Alcantara didn’t get into trouble again until the fifth, when Ben Gamel led off with a ground-rule double. Michael Perez grounded to first, Kuhl struck out with Gamel on third and Frazier grounded out to end the inning.
Moran was activated from the 10-day injured list Sunday after being out since May 8 with left groin discomfort.
Pirates INF Cole Tucker was optioned to Triple-A Indianapolis. He was 2 for 15 with an RBI in eight games (three starts) with Pittsburgh this season.
Marlins: INF/OF Garrett Cooper missed a second straight game with back stiffness.
Pirates: RHP Mitch Keller was placed on the COVID-IL list. … LHP Austin Davis (left elbow sprain) was reinstated from the 60-day injured list. He retired the side in order when relieving Kuhl in the seventh.
Marlins: RHP Pablo López (1-3, 2.82 ERA) will take the mound in Boston against the Red Sox on Monday, making up a game postponed May 30. Despite having just one win this season, López has allowed fewer than three runs in 10 of 12 starts.
Pirates: RHP JT Brubaker (4-4, 3.74) is in line to start against the Los Angeles Dodgers on Tuesday, the first of a three-game set. Brubaker gave up four hits in six shutout innings his last time out against the Colorado Rockies on May 29.
More AP MLB: https://apnews.com/hub/MLB and https://twitter.com/AP_Sports