Johnson pitched into the seventh inning and the Marlins beat the Arizona Diamondbacks 8-1 Sunday for a split of their four-game series.
"He is a really good pitcher and he kind of put their team on his back and took control of that game," Arizona manager A.J. Hinch said. "It's as simple as that."
Johnson (8-2) allowed a run and seven hits -- all singles -- in 6 2/3 innings, striking out seven and walking two in his first victory in four starts. He lowered his ERA to 2.74.
"I felt good out there, which is the key for me," he said. "I threw a lot of good sliders. Not very many balls were hit very hard. It was just one of those days when balls seemed to keep falling but I just wanted to bear down and do whatever I could to stop it."
Cody Ross drove in three runs with a pair of doubles, Jeremy Hermida hit a two-run homer off the right-field foul pole and NL batting leader Hanley Ramirez singled three times as the Marlins (46-44) entered the All-Star break two games above .500. Florida remained four games back of NL East-leading Philadelphia.
"If you would have told me this on April 2, I would have said 'Yeah, I'll take it,'" manager Fredi Gonzalez said. "But now it's July 12 and you want more. You want to win more."
Ross already was thinking about the Marlins' four-game series against the Phillies in Miami after the break.
"Four games right now is a lot," he said of Philadelphia's division lead, "but we've got them coming in the beginning of the second half. I don't want to think about it too much right now. I want to enjoy my All-Star break, but we've got to start getting serious and we've got to take those games."
The Diamondbacks won seven of nine going into the break and were 5-2 on the homestand.
"It would have been great to win three out of four in this series for our third series win in a row," Hinch said, "but I thought we had a really good homestand -- to play better at home, which has been difficult for us, just to play better baseball."
Arizona left-hander Doug Davis (4-9), a leading candidate to be traded before the July 31 deadline, matched his shortest outing of the season at four innings, giving up five runs.
After two quick outs, the Marlins scored three times in the first. Ramirez singled and came home on Jorge Cantu's single. Dan Uggla walked and both runners scored on Ross' towering double off the overhang some 400 feet away in center field.
Emilio Bonifacio beat out an infield single with one out in the fourth, then Hermida fouled off three pitches before hitting Davis' 3-2 delivery high off the foul pole above the Florida bullpen for his 10th homer.
Ross doubled in another run in the seventh.
Hinch moved back Dan Haren's next scheduled start to next Sunday to give the Diamondbacks ace four days' rest after his anticipated appearance in the All-Star Game. ... A woman sitting in the second row near the plate was hit in the face by a Cantu foul ball in the first inning. Her head was wrapped in bandages and she was carried out on a stretcher. ... Arizona slugger Mark Reynolds, the majors' runaway strikeout leader with 123, fanned three times, went 0 for 4, committed an error that led to two unearned runs and finished the homestand 3 for 24. ... Johnson is 2-1 with a 1.35 ERA in three career starts against Arizona.