Joey Wendle hit a two-run single off Hunter Greene as Miami for the third time in nine games.
A day after Cincinnati piled up 11 runs in a romp, Lopez turned in a stopper-like performance for the Marlins. He overcame Mike Moustakas's solo homer to finish with a flourish, retiring his final nine batters and striking out the side in the sixth. He didn't walk anybody while retiring 21 of his last 22 Cincinnati batters.
''That was really fun,'' Lopez said. ''It has been a while since I felt that good. That's one of those starts I really needed. It's a good start to build on.''
The Reds had won nine of their previous 13 games.
''Lopez had as good a stuff as we've seen all year,'' Reds manager David Bell said. ''He had a good fastball. You didn't know which way he was going to cut it. He had a good sinker and great changeup.''
Lopez (7-5), the National League April Pitcher of the Month after going 3-0, allowed a single to the first batter he faced, Jonathan India, before retiring the next 12. Moustakas snapped that run, leading off the fifth with his sixth homer of the season.
Lopez was happy to be able to shake off the homer.
''Giving up a homer is not ideal, but solo shots aren't going to hurt you that much,'' he said. ''I was able to turn the page.''
He was even prouder about issuing no walks.
''I wasn't shying away from the strike zone,'' he pointed out.
Lopez admitted to a bit of lobbying one more inning.
''You never want the ball taken out of your hand,'' he said. ''Those are decisions that are out of my hands. I'll just be proud of the start.''
''He did a good job,'' Miami manager Don Mattingly said. ''We're going to need him in the second half. We're going to take care of him. We want him to stay on a good track.''
Anthony Bass kept the streak alive with a perfect eighth. Tanner Scott closed it out with a 1-2-3 ninth for his 13th save.
Greene almost matched Lopez out-for-out, allowing three hits through the first four scoreless innings before the Marlins broke through in the fifth when Jesus Sanchez singled with one out and went to third on Luke Williams' single. Williams stole second while Jacob Stallings was striking out, but Wendle drove in both runners with a single to right - the first of his three straight hits.
The Marlins collected nine hits and two runs in 6 1/3 innings against Greene (3-12), who struck out six and walked one. The rookie right-hander is 0-5 over his last eight starts since his last win on June 6 against Arizona.
''I just simply challenged them and kept going after them,'' Greene said. ''If they got a little hit here or hit there, I kept going after them. I kept competing. That's my biggest takeaway.''
Marlins third baseman Luke Williams lunged to snare Brandon Drury's sharp one-hopper and made a leaping throw that first baseman Lewin Diaz stretched to haul in on one hop for the first out of the first inning.
Reds LF Tommy Pham hustled over to the line to scoop up Stallings' leadoff single and threw the Marlins catcher out trying to stretch the hit into a double in the third.
Marlins: INF Garrett Cooper (right wrist contusion) was placed on the 10-day on Tuesday, retroactive to Sunday. Cooper was hit by a pitch on Saturday in Pittsburgh.
Reds: CF Nick Senzel seemed to jar his right shoulder making a diving catch of Bryan De La Cruz's sinking liner leading off the fifth. After a visit from a trainer, Senzel stayed in the game.
RHP Luis Castillo (3-4, 2.77), the focus of trade rumors, may be making his last start for the Reds on Wednesday. He is due to be opposed by LHP Braxton Garrett (2-3, 3.42).
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.