Alcantara (9-3) allowed two hits - singles by Luis Rengifo in the fifth and Mike Trout in the seventh - in his 11th consecutive outing of at least seven innings. The right-hander struck out 10 and lowered his ERA to 1.82.
''I just try to stay consistent, go out there every fifth day and fight for my team,'' Alcantara said. ''Every time I can pitch seven, eight innings I feel satisfied. It's a long career and you have to stay healthy.''
Tanner Scott earned his 10th save, surrendering Taylor Ward's sacrifice fly before retiring Jared Walsh on a liner to center for the final out.
Garrett Cooper and Bryan De La Cruz homered for Miami. Joey Wendle had two hits.
Marlins manager Don Mattingly considered giving Alcantara the opportunity for consecutive complete games. But with a prolonged bottom of the eighth, which included a pitching change, Alcantara was done after 107 pitches.
''It's hard because Sandy is your best guy no matter where you are,'' Mattingly said.
Trout snapped an 0-for-16 skid with his infield single leading off the seventh. The three-time AL MVP struck out in his first two at-bats against Alcantara.
Reigning AL MVP Shohei Ohtani went 0 for 3 with a walk. Ohtani, who turned 28 on Tuesday, reached on a fielder's choice in the seventh and stole his ninth base of the season.
''We came back, we fought, we've been doing everything we can,'' Angels interim manager Bill Haselman said.
Alcantara retired his first 14 batters before Rengifo's soft line drive to right.
Cooper connected against Noah Syndergaard (5-7) in the third, driving a 3-2 pitch over the wall in left-center for his sixth homer.
De La Cruz went deep in the fifth. It was his sixth of the year.
Syndergaard allowed five hits, struck out eight and walked none in five innings.
''Some of my stuff didn't have swing and miss action,'' Syndergaard said. ''Got away with some pitches and made it through five.''
Umpire Lance Barrett ejected Miami right-fielder Avisail Garcia for arguing balls and strikes in the fourth.
SCANT SCORING CHANCES
The Angels had two scoring opportunities against Alcantara. After his two-out single in the fifth, Rengifo stole second and advanced to third on catcher Jacob Stallings' throwing error. But Alcantara struck out Max Stassi to end the threat. Ohtani advanced to third on Ward's fly ball to deep center before Alcantara struck out Walsh for the final out in the seventh.
''I've said it before, I don't worry when I have men on base,'' Alcantara said. ''I trust my stuff and have to use it to my advantage.''
UNLIKELY BASE STEALER
Include Jesus Aguilar among the Marlins who have contributed to the club's NL-leading 65 stolen bases. The husky first baseman got his first career steal in the first. Aguilar, who reached on a throwing error by second baseman Rengifo, beat catcher Stassi's throw in his successful attempt at second.
''It was an off-speed pitch, that's why I got it,'' Aguilar said. ''Finally, I got one after six years.''
The Marlins' brief homestand against the Angels interrupts a stretch of 11 road games. Before their two-game set with the Angels, the Marlins finished 5-2 in St. Louis and Washington. They begin a four-game series at the NL East-leading New York Mets on Thursday.
Angels: INF-OF David Fletcher (left hip strain) has been progressing and will take live swings soon.
Marlins: 2B Jazz Chisholm Jr. (right lower back strain) is doing mobility exercises at the club's spring training complex. ... LHP Jesus Luzardo (left forearm strain) threw a 30-pitch bullpen session.
Ohtani (7-4, 2.68 ERA) makes his first career start against Miami in the closing game of the series Wednesday. LHP Trevor Rogers (4-6, 5.56 ERA) starts for the Marlins.
More AP MLB: https://apnews.com/hub/MLB and https://twitter.com/AP-Sports
Copyright 2022 STATS LLC and Associated Press. Any commercial use or distribution without the express written consent of STATS LLC and Associated Press is strictly prohibited.