The Marlins snapped a five-game losing streak - all on this trip through Colorado and San Diego - while the Padres had their four-game winning streak stopped.
The Padres entered the day holding the second NL wild-card spot. The Marlins are in last place in the NL East.
"Happy flight day. Really nice to get a win and get back to Miami," said James Rowson, who has been acting manager since Don Mattingly tested positive for COVID-19 on July 31. Mattingly is expected to rejoin the club Friday in Miami.
"I'm really proud of these players," Rowson said. "It was exciting to get the win but the fact they just played hard every singe day, every single inning and kept it going. Obviously there weren't a lot of wins but there was never any laying down. There were a lot of guys battling, grinding through everything. It was nice to get a win the last day. It was pretty cool to be a part of this."
Alcantara (7-10) bounced back from one of his worst starts, when he allowed a career-high 10 runs on 10 hits, including three homers, in just 3 2/3 innings in a 14-2 loss at Colorado on Friday night.
The 25-year-old right-hander scattered four hits, struck out seven and walked two. Only one baserunner made it as far as third base. Trent Grisham doubled with one out in the third, advanced on a groundout and was stranded.
"Man, that was huge," Rowson said of Alcantara's performance. "I mean, that really keeps you in the game, keeps your offense going, keeps everything going. What a credit for Sandy to bounce back from that start in Colorado. Came in today and had had everything working. That was ace stuff out there. "He was dominant and stayed strong throughout the game. He gave us a good shot in the arm. It was awesome."
Brinson had the third multihomer game of his career and first since 2018. He hit a two-run drive to left field with one out in the first and a solo homer to center with one out in the third. He's hit seven home runs this season.
Brinson's first homer bounced off the top of the wall and went over. He wasn't sure it went out so held up at second base before being waved in.
"I thought it was a ground-rule double," he said. "I didn't get it flush, kind of got it not off the end but toward the end of the bat. I thought it bounced and went over."
Rookie Bryan De La Cruz, who made his big league debut on July 30, hit his first career homer in the Marlins second.
Weathers (4-5) has allowed six homers in his last three starts. He gave up six runs and seven hits in 4 2/3 innings while striking out seven and walking one.
Weathers also allowed Isan Diaz's RBI double in the first.
San Diego's starting pitching started to come around earlier this week when, in consecutive games, Yu Darvish and Blake Snell each went seven innings and Joe Musgrove went six. With Chris Paddack on the injured list, the Padres had a bullpen game Tuesday night, with opener Craig Stammen going two innings.
It was the fifth straight start Weathers didn't go at least five innings.
Reliever Daniel Hudson had a rough Padres debut, failing to retire any of the four batters he faced opening the eighth and walking in a run. He was acquired from Washington in late July.
""It was a dream come true. It's without a doubt the best day of my career so far," De La Cruz said through an interpreter about his home run. He was told he'll get the ball once the team returns to Miami. "I'm going to put it in one of those cubes and show it to all the kids."
Marlins: LHP Jesus Luzardo (3-5, 7.36) is scheduled to start Friday night in the opener of a three-game home series against the Chicago Cubs.
Padres: Darvish (7-6, 3.43) is scheduled to start Thursday night in the opener of a four-game series at Arizona, which will counter with RHP Taylor Widener (1-1, 4.89). It's a rematch of a 6-2 Padres win on Saturday night in San Diego in which neither starter got a decision. However, Darvish struck out 12 and allowed just two runs and four hits in seven innings.
Brinson clubs two dingers for the Marlins
Lewis Brinson connects on two home runs in the Marlins' win vs the Padres.