The result was the Marlins' first winning streak in nearly a month, and ramped-up speculation that Mets manager Mickey Callaway's job was in jeopardy.
"I'm coming in tomorrow to manage the New York Mets and I'm going to be enthusiastic about it and I'm going to continue to lead this team to something special," Callaway said after his team was held to one hit Saturday in a 2-0 loss.
Lopez gave up a double on his first pitch, then combined with the Marlins' bullpen to hold the Mets hitless the rest of the way in sending New York to its fourth straight loss.
"I didn't even have to talk," Marlins manager Don Mattingly said. "He was really good."
Lopez (3-5) pitched seven innings and tied a career high with seven strikeouts. It was bounce-back performance for the 23-year-old righty after allowing a career-high 10 runs in three innings in his last start on May 10 in New York.
"You find out what a guy is made of," Mattingly said. "He took a beating in New York. Nothing went right. There were two ways to go -- either he was going to come out and pitch as if he were afraid of those guys or he was going to be aggressive."
Lopez patiently awaited his next opportunity.
"Last outing was rough and I had to wait eight days for today," he said. "So I was a little anxious to go out there and leave everything on the field."
The Marlins, with the worst record in the majors, beat the Mets for the second straight day after entering the series with a seven-game losing streak.
The Mets fell a season-worst four games under .500.
"I do believe we have talent in there," Callaway said. "We haven't played like that. There's no doubt that hasn't been the case, but I believe those things for a reason and I believe everyone comes to the park every day for something greater than what's been happening. We have to start making it happen, somehow, some way."
Callaway is in his second year with the Mets, who made lots of changes in the offseason.
"As a leader you can't ever worry about yourself," Callaway said. "I'm here. One of the things I told them when I got hired was selfless service is very important to me and my goal every day is to improve that room, be consistent, and make sure our players continue to improve."
Mets veteran third baseman Todd Frazier defended his manager.
"It's not a question for me, I think he's doing a great job," Frazier said. "He can't go up there and hit. He makes the lineup, he puts the guys in at the right time, and we're not producing."
Jeff McNeil sliced the first pitch of the game just inside the left field line for a double, but that was all the Mets managed against Lopez (3-5) and two relievers.
A crowd of 13,474 saw the Marlins record their first one-hit shutout since four pitchers combined to throw one on May 7, 2017, against the Mets in New York.
"(Lopez) threw mistakes and we missed them," Callaway said. "We didn't the other day. It's not like he made every pitch all night."
Tayron Guerrero got four outs and Adam Conley finished for his second save.
Jon Berti hit his second home run of the season and Brian Anderson knocked in the other run for the Marlins, who won consecutive games for the first time since back-to-back wins over the Washington Nationals on April 19-20.
"To put another on the board hopefully it gives us momentum," Mattingly said.
Steven Matz (3-3) was activated from the 10-day injured list to make his first start since May 3 at Milwaukee. He allowed two runs and five hits in 3 2/3 innings. He struck out six and walked two.
"It was OK," Matz said. "A little erratic with the fastball in the zone. I haven't been out there in a while so I was trying to figure out that adrenaline a little bit again. It was a loss, wasn't very efficient, got out of there in the fourth inning so really not that great."
Berti led off the bottom of the first with a home run to right off Matz, who entered with a 3-0 record and 0.93 ERA in five career starts at Marlins Park.
Anderson's single in the third gave Miami a 2-0 lead.
The Mets bounced into inning-ending double plays in the sixth and eighth.
SEWALD TO MINORS
Right-handed pitcher Paul Sewald was optioned to Triple-A Syracuse to make room for Matz. Sewald has a 3.86 ERA in four appearances with the Mets.
Mets: LHP Jason Vargas (hamstring) is scheduled to make a rehab start on Sunday with Double-A Binghamton and then could return to the Mets if all goes well. "We'll see, but I think he would be an option after one (rehab start)," Callaway said.
Marlins: C Jorge Alfaro left the game in the fourth inning with a mild left calf strain after sliding into second base for his first stolen base of the season. He is considered day-to-day. "I'm fine," Alfaro said. "It feels bruised right now, bothering me a bit. I'll be back Tuesday."
Mets: RHP Noah Syndergaard (3-3, 4.74 ERA) tossed his second career complete game and first shutout of his career in his last start against the Marlins on Sept. 30, 2018.
Marlins: RHP Sandy Alcantara (1-4, 5.11) is 1-2 with a 2.92 ERA in four career starts against the Mets.
More AP MLB: https://apnews.com/MLB and https://twitter.com/AP-Sports
Berti plates the only run the Marlins would need
Jon Berti takes a Steven Matz pitch opposite field to score the only run the Marlins would need, beating the Mets 2-0.