DETROIT -- If Brandon Webb is ever going to pitch a no-hitter, Detroit has a good chance of being the location.
"It was fun while it lasted," Webb said.
In his two previous starts in Detroit, he pitched the only two complete games of his career, including his only shutout.
"I've just always gotten good sink here, and had good command of my pitches," he said. "And, to be honest, I've had a lot of luck here."
The outing raised Webb's ERA in Detroit to 1.44.
"That's 25 innings against us and four runs," Tigers manager Alan Trammell said. "He has one of the best sinkers I've seen in a long time. From the side, it almost looks like a knuckleball, it moves so much."
Craig Counsell tied a team record with three doubles and also hit a go-ahead single in the eighth as the Diamondbacks won their interleague opener. Arizona went 6-12 against the AL last year.
Webb (6-0) allowed just one runner in the first six innings, walking Omar Infante in the third, then retired Brandon Inge for the first out of the seventh. Ivan Rodriguez followed with a roller to third and reached with an infield single when he easily beat the throw from Troy Glaus, who had picked up the ball with his bare hand.
"He did a great job," said Rodriguez, who had a similar infield single off Webb in the ninth. "Sometimes you've just got to give credit to the pitcher."
Webb struck out a season-high eight in eight-plus innings, giving up two runs, six hits and a walk.
"We are kind of spoiled by this kid," Arizona manager Bob Melvin said. "We see this kind of thing a lot with him. For a sinkerballer, he can really strike guys out."
"Brian was nasty tonight," Webb said.
Arizona went ahead for good in the eighth after Chad Tracy led off with a single off Jamie Walker (2-2). Royce Clayton singled off Franklyn German, and Chris Snyder loaded the bases when first baseman Carlos Pena mishandled his sacrifice bunt for an error.
Doug Creek relieved, and Counsell singled to right for a 3-2 lead. Chris Spurling came in and struck out Jose Cruz Jr. in an 11-pitch at-bat, but Luis Gonzalez followed with a sacrifice fly before Glaus lined out.
"It seems like we've done this all year," Counsell said. "We get chances early in the games, and don't take advantage, but then we put things together against the other team's bullpen."
Arizona added two runs in the ninth on Clayton's RBI single and Counsell's sacrifice fly.
Jeremy Bonderman, pushed back a day because of a tired arm, allowed two runs, seven hits and four walks in six innings.
"I felt fine," Bonderman said. "I didn't have my best stuff, and I got in trouble a lot and was able to find my way out of it."
Arizona went ahead in the first on Glaus' RBI grounder and Shawn Green's run-scoring double.
The closest Detroit came to a hit in the first five innings was on Rodriguez's liner to deep center in the fourth. Cruz took a bad angle and threw his hand up awkwardly, with the ball nestling into the web of his glove.
"That was outstanding," Webb said. "When I saw that, I was thinking that there are always plays like that in a no-hitter."
- Counsell gave Arizona its seventh three-double game, the first since Chad Moeller in 2003.
- Guillen returned to the lineup after missing two games with knee soreness.
- Randy Johnson has Arizona's only no-hitter -- a perfect game against Atlanta in 2004 -- and the last no-hitter against Detroit, in 1990 for Seattle. Nolan Ryan pitched the last no-hitter in Detroit in 1973.