Against a team that beat him less than a week earlier at Chase Field, Johnson allowed just one run in six innings to pick up his first win since June 10, as the D-backs beat the Padres, 5-1.
It was Johnson's third start of the year and by far his best as he allowed three hits and walked two while striking out seven. He threw 94 pitches, 56 for strikes.
"I'm getting to where I want to be," said Johnson, who notched career win No. 285. "My body felt good today."
The Arizona offense gave Johnson an early lead as the D-backs scored five runs in the third inning off San Diego starter Randy Wolf.
Mark Reynolds' three-run homer over the wall in center to cap the inning will be what people remember most, but Reynolds wouldn't have come to the plate if it hadn't been for Conor Jackson.
The Padres played Jackson to pull so when he hit a grounder the opposite way, Padres second baseman Callix Crabbe had to range far to his left before fielding the ball in shallow right. Crabbe whirled and tried to get Jackson at first, but his throw sailed high and Jackson was safe and Orlando Hudson moved to third.
Reynolds followed and worked the count to 2-1 before hitting his seventh homer of the year.
"Great offense by our hitters," Johnson said. "Good defense. Every facet of our game was solid today."
The Padres looked like they were going to get right back into the game in the fourth, when they loaded the bases with one out. Johnson, though, got Josh Bard looking on a backdoor breaking ball.
Crabbe then singled to drive in one run and with the bases still juiced, former D-back Tony Clark strolled to the plate.
It was the kind of matchup that Johnson relished and knows he will someday miss when he retires.
"I know what Tony's strength is and I know what my strength is," Johnson said. "And if you execute a pitch, there's a good chance you can get him out."
Johnson did just that with a 1-2 slider that Clark swung through to end the inning.
"That could have been a big inning, so to just give up the one run and still have a four-run lead was huge," Johnson said.
It was also quite a bit different from Johnson's last outing against the Padres, when he faced a similar situation and couldn't get out of it as Justin Huber hit a three-run homer and San Diego scored five times in the sixth.
After that game, Johnson replayed over in his mind the pitches he made to Huber as well as Adrian Gonzalez, who had an RBI double. "What were my mistakes there?" he asked himself. His answers helped him formulate his game plan for Friday.
"I actually analyze more of my games and my pitches now because I have to realize where my mistakes are made," Johnson said. "Whereas in the past, when I was younger and throwing 98 [mph], I was young and dumb and threw hard."
Nowadays, Johnson is wiser from experience and while he can still touch 96 mph, which he did once Friday, his fastball usually registers in the low 90s and that leaves less of a margin for error.
Though he's had limited work with the bat in deference to trying to not reinjure his back, Johnson was able to get down a sacrifice bunt and also lined a single to center.
"This is the reason why I'm playing, because I feel I can do these kind of games when I'm healthy," he said. "That's why I'm still playing. Because I still enjoy being competitive. I still enjoy going out and doing that. I'm 44 years old and still enjoy grabbing a bat and trying to put the ball in play.
"I enjoy all that. I just feel like I can still pitch and have a couple of good games left in me."