Arizona rookie left-hander Wade Miley held the powerful Texas Rangers lineup scoreless until giving up one run in the eighth inning.
And that still wasn't good enough for the Diamondbacks.
Matt Harrison extended his consecutive scoreless streak to 16 1-3 innings, pitching into the eighth before Mike Adams and Joe Nathan closed out the Rangers' third shutout victory in their past five games, 1-0 on Wednesday night.
"That was a tough one for sure," said Miley, who finished with a career-high eight strikeouts in 7 2-3 innings.
Miley (7-3) had allowed only two base runners, on two singles, before opening the eighth with his only walk — on a full-count pitch to Mike Napoli.
"When he got the walk, they got a little momentum," Miley said. "It was a slider a little bit down and in. I wanted to throw it back door. It was a borderline pitch. It could go either way, but he got it right."
Yorvit Torrealba then had a sacrifice bunt before pinch-hitter Nelson Cruz struck out. Craig Gentry, the No. 9 batter hitting .340, hit a hard one-hopper that ricocheted off the top of third baseman Ryan Roberts' glove and into left field for an RBI single.
After David Hernandez replaced Miley, who had gone a career-high eight innings to win against Colorado his previous start, Roberts made an impressive stop and threw out Ian Kinsler for the third out, but the damage was done.
Texas has won seven straight against the Diamondbacks, who were shut out for only the second time this season. Arizona has scored only once in the first two games of this series.
"I don't really have an answer for it," manager Kirk Gibson said.
The Rangers have won 28 of their last 40 games against National League opponents.
Though Harrison didn't get a decision, and was denied an AL-best ninth victory coming off a five-hit shutout in his previous game, he followed four consecutive victories with another impressive start. And the Rangers needed every bit of what he had against Miley.
"It was very critical, matching the zeroes. ... He got the opportunity to put it up first, and Harry kept doing it," Rangers manager Ron Washington said. "Tonight, it only took one run, tonight it only took one hit in the right situation. ... Give Harry a lot of credit."
Adams (1-2) took over after Willie Bloomquist hit a ball just inside first base for a double. The reliever pumped his fist — as did Washington and catcher Torrealba — when Justin Upton, already with two hits, struck out to end the inning.
Nathan worked a perfect ninth for his 13th save in 14 chances.
It was the 11th 1-0 game in the history of Rangers Ballpark, which opened in 1994. It was the second this season — the Rangers beat Seattle 1-0 on April 10.
The 95-pitch effort by Harrison came a night after Colby Lewis threw a four-hitter for Texas in a 9-1 complete game in the series opener.
Harrison had beaten San Francisco 5-0 on Friday night, the same score for Sunday's victory over the Giants when Alexi Ogando threw three perfect innings in a start before straining his groin running out a bunt. Ogando is out four to six weeks after joining starters Neftali Feliz and Derek Holland on the disabled list.
Harrison struck out three and walked two while allowing six hits against Arizona.
"I feel good with my tempo right now and it's making me just focus on making my pitches and not worry about my tempo," Harrison said. "Just being aggressive, being able to throw my offspeed pitches for strikes."
The game was played in 2 hours, 12 minutes, not including a 29-minute rain delay after the fourth inning.
Harrison benefited from two double plays before the rain delay.
After Miguel Montero drew a leadoff walk in the third, he was doubled up on Roberts' liner to shortstop. Gerardo Parra followed with the Diamondbacks' first hit, an infield single on a ball that shortstop Elvis Andrus fielded deep in the hole going away from first base.
Upton grounded a one-out single up the middle in the fourth before Paul Goldschmidt's double-play grounder.
"We had a few chances, but not very many," Upton said. "Wade gave us a chance to win. You've got to tip your cap to their pitcher too. In situations where we had a chance to score, he shut us down."
Notes: Cruz was out of the starting lineup again after being sent home Tuesday and missing the series opener with a virus. Brandon Snyder started in right field. ... RHP Scott Feldman (0-5) pitches the series finale for Texas against RHP Daniel Hudson (2-1), in his fourth start since coming off the DL.