The last-place Padres lost for the ninth time in 10 games.
Johnson's last win came on June 10 against Boston. He made one more start before his 2007 ended because of a sore back that required a second surgery in less than a year.
The 44-year-old left-hander had a no-decision in his first start this season and lost to Randy Wolf and the Padres on Sunday, 9-4 at Phoenix.
The NL West-leading Diamondbacks jumped on Wolf for five runs in the third inning, which was highlighted by Mark Reynolds' three-run homer to straightaway center. The Diamondbacks scored as many runs that inning as the Padres had in their previous 55 innings at Petco Park. Chris Young doubled in a run and Orlando Hudson had an RBI single that inning.
Reynolds has seven homers and 22 RBIs, both team highs.
The Padres position players and hitting coach Wally Joyner held a pregame meeting that leadoff batter Brian Giles described as "productive."
Still, the Padres are struggling to come up with key hits while playing a sputtering brand of station-to-station ball.
San Diego loaded the bases with one out in the fourth yet scored only one run. Kevin Kouzmanoff singled, Khalil Greene doubled and Justin Huber, who hit a three-run homer off Johnson on Sunday, was hit by a pitch on his left elbow. Josh Bard took a called third strike on a nasty slider before rookie Callix Crabbe singled to left to score Kouzmanoff. Johnson then struck out pinch-hitter and former teammate Tony Clark to end the threat.
Johnson (1-1) walked two. Three relievers combined for three hitless innings to preserve the win.