Arizona's bullpen blew a late lead and Randy Winn's ninth-inning home run gave the Giants a 4-3 victory on Thursday night that completed a three-game sweep of the Diamondbacks.
"We got some breaks there in the eighth, but you take it," Giants manager Bruce Bochy said. "It's a great series for us, a great way to finish a good road trip."
Johnson fanned nine to tie Roger Clemens for second in career strikeouts, but shrugged off the accomplishment. He noted he moved into second last year, then was injured and fell back to third with Clemens still pitching.
"It's kind of a moot point," Johnson said. "To win a ball game is the most important thing. To go out there and pitch a good ball game, and if we would have won, that would have been the big thing because we need a win right now."
Winn's second solo home run of the night allowed the Giants to finish their trip 6-3 and handed the Diamondbacks their season-worst fourth straight loss. He said he caught a sinking fastball from Qualls that didn't sink enough.
"He's a real good sinkerball pitcher. He's not a guy who gets the ball up in the zone," Winn said. "He's a guy that gets a lot of ground balls with the sinker. That one just happened to be up."
It was Winn's fourth career multi-homer game.
"He's so solid. I think he's one of the more underrated players in the game," Bochy said. "You don't hear much about him, but he quietly goes about his business and just plays great baseball."
"The way it's going right now, if we make a bad pitch or don't make a play, it ends up costing us," Arizona manager Bob Melvin said. "When you're playing well, sometimes you get away with those things."
Johnson, who left the game with a 3-2 lead after seven innings, has struck out 19 -- in 13 innings -- in his last two starts to tie Clemens with 4,672 strikeouts.
The tying strikeout came when Johnson fanned Dan Ortmeier for the third time of the night to start the seventh inning. Johnson drew a standing ovation as he left the field. He was lifted for a pinch hitter in the bottom of the inning with Arizona leading 3-2.
Johnson, who returned to the Arizona rotation after his second back surgery in as many years, allowed two runs on six hits and walked one.
"I believe that I'm getting to where I'm effective out there," he said. "I mean, I'm not washed up or anything like that."
But for his second start in a row, a strong effort led to no decision.
Justin Upton, 13 months old when Johnson made his major league debut on Sept. 15, 1988, hit a solo home run in the second, then tripled in the go-ahead run in the sixth for Arizona. Both hits came with two outs one game after Upton ended an 0-for-27 skid.
Pena walked two and hit a batter in two-thirds of an inning.
Qualls (0-5) came on to strike out pinch hitter Steve Holm to end the inning but allowed Winn's homer to left on a 1-0 pitch in the ninth. Brian Wilson threw a perfect ninth for his NL-leading 16th save in 18 opportunities.
Tyler Walker (3-3) pitched a scoreless eighth to get the victory.
Both of Upton's hits came off Barry Zito, who allowed three runs on six hits in six innings. He struck out five and walked three.
Johnson retired the first nine he faced, five by strikeouts, before Winn's home run leading off the fourth. His third homer of the season came with a 3-2 count on the 10th pitch of his at bat.
Arizona tied it in the fourth. Orlando Hudson doubled down the left field line, then scored on Jackson's single.
Zito retired the first two batters in the sixth, then walked Mark Reynolds. Upton had an 0-2 count when he lashed an RBI triple into the right-center gap and Arizona led 3-2.
Vizquel will be honored in a pre-game ceremony in San Francisco on Friday for his 2,586 games at shortstop, most at the position in MLB history. ... Double plays erased Arizona base runners in the first two innings. ... Arizona has three of the five players with the most strikeouts in the NL -- Upton (64), Reynolds (63) and Chris Young (57).57
Orioles bring 1-0 series lead over Red Sox into game 2
Baltimore Orioles (19-27, fifth in the AL East) vs. Boston Red Sox (21-24, fourth in the AL East)
Angels to stop losing streak in game against the Blue Jays
Toronto Blue Jays (25-20, third in the AL East) vs. Los Angeles Angels (27-20, second in the AL West)
Mariners play the Astros with 1-0 series lead
Houston Astros (29-17, first in the AL West) vs. Seattle Mariners (19-27, fourth in the AL West)
Cubs visit the White Sox to start 2-game series
Chicago Cubs (18-26, third in the NL Central) vs. Chicago White Sox (22-22, second in the AL Central)
Marlins take on the Braves looking to break road slide
Miami Marlins (18-25, fourth in the NL East) vs. Atlanta Braves (22-24, second in the NL East)
St. Louis Cardinals host the Milwaukee Brewers Saturday
Milwaukee Brewers (29-17, first in the NL Central) vs. St. Louis Cardinals (25-20, second in the NL Central)