PHOENIX (AP) -- Brandon Webb doesn't have a new contract. He does, however, have a major league-best 16 wins and the nastiest sinker in the game.
After teammate and fellow All-Star pitcher Dan Haren agreed to a new contract earlier in the day, Webb threw a nine-hitter for his third complete game in the Arizona Diamondbacks' 3-1 victory over the Pittsburgh Pirates on Tuesday night.
Arizona extended its lead in the NL West to 2½ games over the Los Angeles Dodgers, who lost 6-4 in 11 innings at St. Louis.
Webb (16-4) carried a shutout into the ninth but surrendered a leadoff double to Freddy Sanchez and an RBI single to Doug Mientkiewicz. The Pirates put runners on second and third with one out before Webb struck out Brandon Moss and Jason Michaels to finish the game in an efficient 1 hour, 55 minutes.
Afterward, Webb surprisingly said he had agreed to the money and length of a new contract earlier this season, but the deal was never finalized.
"I just want fans to know that I'm not the one who took it off the table," Webb said. "We just didn't see eye to eye on a couple of things and that was it."
Asked what caused it to fall through, Webb referred the question to general manager Josh Byrnes, who did not return a telephone message Tuesday night. Before the game, Byrnes said talks with Webb had been "tabled."
Haren agreed to a $44.75 million, four-year contract.
Webb is under contract through 2009 with a club option for 2010. He is to make $6.5 million next year and, if the team picks up the option, $9.5 million in 2010, including $1 million in incentives he's already reached.
He said he still wants to stay, especially with Haren as a teammate.
"We feed off each other," Webb said.
One thing is for sure, the way he's pitching, Webb isn't getting any cheaper.
Webb had his signature sinker working most of the night, getting 21 outs on grounders in his third straight win. He struck out four and walked none in his 15th career complete game.
"I was getting ahead, then zoning my sights down and they were beating the ground up," said Webb, who reached 16 victories for the third straight year.
He said his sinker was "a pretty good one, I'm not gonna lie."
"These last two games were probably my top two of the year so far," he said.
Arizona manager Bob Melvin said Webb's sinker "was about as good as we've seen it this year."
Zach Duke (4-10) lost his fifth straight start despite one of his best outings of the season. He allowed two runs and a season-low four hits over seven innings.
"You hate to see a game decided on two hitters, but that's what it came down to," Pittsburgh manager John Russell said. "Zach keeps throwing like that he's going to be fine."
Duke, who struck out six and walked one, is 0-6 in his last 10 starts. His last victory came against Arizona on June 9.
The Diamondbacks got all the runs they needed in the third. Stephen Drew hit a two-out double down the right-field line and Chris Young lined a 1-2 pitch into the bullpen in the left-field corner for his 15th homer.
Young said he was looking for a curveball, and that's what Duke threw.
"Unfortunately, I made one bad decision and against Brandon Webb that's all it takes," Duke said. "It was a curveball. It wasn't a bad pitch, it just wasn't the right pitch."
After he gave up three runs in 1 1/3 innings as a starter in Monday's 13-7 loss to Arizona, Pittsburgh RHP Yoslan Herrera was optioned to Double-A Altoona. RHP Romulo Sanchez was recalled from Triple-A Indianapolis. ... Arizona LHP Randy Johnson goes after his sixth straight victory -- and 294th of his career -- on Wednesday.