"I think the good thing we got out of this is I loved the way JJ threw the ball," manager Ozzie Guillen said. "That's three steps forward. That's the first time I've seen him throw that ball like that in three months. I'm very glad. He made one bad pitch against the pitcher, but I loved the way he threw the ball.
"It's very, very positive. We lose the game, but he did what he was supposed to do. He kept us in the game. He was outstanding today, but the guy against him was better."
The Marlins have dropped two straight, and they lost a series for the first time since Arizona took three of four (April 27-30). They complete the three-game series with the Braves on Thursday.
Although Johnson's record dropped to 3-4, the performance was his best this season. The 7 2/3 innings is his longest outing since he threw eight innings at Pittsburgh on Aug. 18, 2010, a span of 24 starts.
"It's a good step," Johnson said. "I shouldn't have given up that second run. I've got to get past it, but it's a good step in the right direction."
The 113 pitches were his most since throwing 114 on May 10, 2011, against the Phillies, and the nine strikeouts matched a season high, first done at the Mets on April 24.
Miami lost back-to-back games for the first time since May 23-24. In the process, Jose Reyes had his 15-game hitting streak snapped. He went 0-for-4 and struck out in the ninth against closer Craig Kimbrel, who notched his 17th save.
Miami had a season-low two hits, and only three baserunners.
Delgado retired the first 12 batters he faced, remaining perfect until Giancarlo Stanton opened the fifth with a double down the third-base line.
"You've got to give credit to people that deserve credit," Guillen said. "Delgado, with all respect to all the people we've faced in the past, this kid was the best one we've seen so far. He's not the best pitcher we've seen, but today, he had the best stuff I've seen. We've faced some good ones. We've faced some quality pitchers. I think today this kid was at the top of his game."
The Marlins pushed across their first run of the series on Bryan Petersen's two-out, full-count RBI single to left. Atlanta pitchers had a string of 13 straight scoreless innings in the first two games.
Miami had gone without a run for 15 innings, dating back to the seventh inning on Sunday at Philadelphia.
After being blanked, 11-0, on Tuesday night, Guillen was looking for a bounce-back effort. Wednesday was a strong pitching matchup, and a quality game.
"The guys showed up today the way I wanted them to show up," the Marlins manager said. "Obviously, when you look around, when you get beat up the way we got beat up last night, you kind of worry about it."
Johnson's arm strength is building, as he was reaching 96 mph with his fastball. The right-hander had five strikeouts through three scoreless innings, but he ran into trouble in the fourth inning.
"It's being able to repeat my delivery," Johnson said. "You'd get there, you'd throw hard, but you don't know where it's going. I have that feeling again, and I feel I can repeat it."
Brian McCann doubled to open the fourth, and Dan Uggla drew a walk after falling behind in the count, 1-2. Freddie Freeman bounced an RBI single to right, putting runners on the corners.
"I got a couple of pitches up in the zone to hit," said McCann, who had three of the six hits Johnson allowed. "I worked the count a little bit, and when I got my pitch, I didn't miss it like I've been doing basically all season long. It was good to barrel some balls the other way and pull the ball down the line in the same game."
Jason Heyward bounced to second, and the Marlins were willing to concede the run for a double play. Omar Infante tossed to Reyes for the force at second. Reyes' throw to first was accidentally swatted down by Freeman, who was struck on the left hand by the throw.
Because of interference on Freeman, a double play was ruled. Freeman was shaken up on the play, and he was replaced due to a bruised left index finger.
Since the ball was ruled dead on the interference, Uggla had to return to third base.
Johnson was in position to limit Atlanta to one run, but after Andrelton Simmons was intentionally walked, Delgado slapped an RBI single to left.
"I feel like I threw maybe three bad pitches all game," Johnson said. "That was one of them."