Turner made his fourth start since joining the Marlins. He also made three starts for Detroit, but in none of them had he pitched as many as seven innings, a career high.
The 21-year-old right-hander limited the Reds to two hits, while striking out three and walking two.
"Like I always say, when you keep the ball around the plate, you're going to have a chance to pitch well and have a good game," Marlins manager Ozzie Guillen said. "He threw the ball very well, obviously. I think the most important thing was the last inning, he seemed like he was a little fatigued. A little tired. And he went through it."
Turner, Heath Bell and Steve Cishek combined for the three-hitter, which also was the Marlins' seventh shutout.
"Obviously, they're good hitters," said Turner, now 1-2 with Miami and 2-3 overall. "If you get behind, you give in too much. If you don't make quality pitches, they're going to take advantage of it. The biggest thing was I was able to stay aggressive all night."
The Reds, meanwhile, hadn't been blanked since losing 5-0 to the Giants on June 28. Overall, they've been shut out just three times.
"They're in first place for a reason," Guillen said. "I think those guys can swing the bat. They've got pretty good hitters. That's why I think throwing strikes was the most important thing. It was the key in the game. He kept the ball down. There were a lot of fly balls.
"The guys on the field played pretty good too. There was a lot of contact, and the guys made the plays."
The lone hits Turner allowed were a second-inning, two-out double to Todd Frazier, and a one-out single to Joey Votto in the fourth.
"He's very impressive in the zone, impressive how few walks he's thrown over his last few starts," said Votto, who holds a .321 batting average against the Marlins. "I think it bodes well for him. I think that's a tendency with a lot of good pitchers. They don't like to get beat by walks."
Miami snapped a three-game losing streak.
The Marlins are looking to end the season on a high note. They are 64-81, and one more loss would mean they've endured their third straight losing season.
The Marlins broke open a four-run lead with two runs in the fifth inning, but in the process lost the services of Lee.
Lee delivered a two-out RBI single to right field. On the play, there was confusion, and a rundown.
Justin Ruggiano and Jose Reyes, who each singled with one out, ended up scoring. Lee was credited with an RBI when Ruggiano scored from second.
Right fielder Jay Bruce's throw to the plate was too late to get Ruggiano. Lee was caught between first and second, and he was in a rundown. Reyes, meanwhile, dashed for home, and the throw home again was not in time.
Still, the Reds were able to throw out Lee attempting to slide into second base. On the play, Lee slid headfirst into second, where he was tagged out by Wilson Valdez.
Lee exited with a neck strain.
"Carlos is fine," Guillen said. "Right after the game, he told me he was fine, and he should be ready for [Saturday's] game."
The Marlins touched up Reds right-hander Bronson Arroyo for four runs on nine hits in six innings.
Dobbs' homer to open the fourth inning gave Miami a two-run cushion. The drive to right field, which landed in the second deck, was estimated at 374 feet.
The Marlins claimed a 1-0 advantage in the third inning on Ruggiano's RBI double to left-center. Rob Brantly got the three-hit inning rolling with a single, and he moved to second on Bryan Petersen's single.
Ruggiano is staying hot at home, as he is 14-for-37 (.378) in his past 10 games at Marlins Park.
"We just couldn't get anything going," Reds manager Dusty Baker said. "It was no balls and two strikes before you look up and there were two outs and nobody on base. He threw a good game against us tonight. Bronson didn't throw badly, we just didn't score any runs tonight. It's been a long time since we've been shut out. I can't remember the last time. You just got to say he threw a great game."