That has all changed, thanks in part to a light-hitting catcher.
Duke allowed two runs over 7 2/3 innings and Raul Chavez drove in three runs to lead the Pirates to a 5-2 victory over the Astros on Wednesday night.
Duke (3-4) gave up seven hits, struck out two and walked two. He was lifted after allowing a two-out walk to Miguel Tejada in the eighth. The left-hander had his longest outing of the season and won for the first time in seven career starts against Houston.
"I was surprised to hear that," said Duke, who was born in Clifton, Texas, about four hours from Houston. "It's good to finally get them. Hopefully, I'll get 10, 12 more."
Duke kept the Astros off balance throughout the game, effectively mixing his slider with his changeup. Pirates manager John Russell called it his best performance of the season.
"He did a great job," Russell said. "He had command of the ball down in the strike zone. His sinker was working, and it's a pitch he went to all night."
Ty Wigginton hit a solo home run and Carlos Lee had an RBI single for the Astros, who have lost six of seven, scoring 10 runs in that stretch.
Houston manager Cecil Cooper had no answers on how to get his team of its offensive funk.
"Keep running them out there, that's all you can do," he said. "You can only do so much hitting in the cage. Sooner or later, things will start clicking. That's how we started the year, this way. Two-to-three weeks in, we figured it out, and we started hitting. They'll get it going."
Oswalt (4-6) lost to the Pirates for the first time since April 25, 2005. He went six innings, allowed three earned runs and nine hits, struck out four and walked one. Before Wednesday night, Oswalt was 5-0 with a 1.84 ERA in his past eight starts against the Pirates.
"He pitched OK," Cooper said. "They fought him pretty hard and stayed in a lot of at-bats."
Trailing 1-0, Pittsburgh scored three times in the fourth.
Adam LaRoche broke an 0-for-18 slump with an RBI single that tied the game. With runners on second and third base and two outs, the Astros chose to pitch to Chavez, the Pirates' No. 8 hitter who came into the game hitting .231 with two RBI.
Chavez, who played with Houston for parts of five seasons, doubled his total with a single that gave the Pirates a 3-1 lead.
"He hit a pretty decent curveball," Oswalt said. "It was low in the zone, probably a strike. If it's two inches the other way, it's an out."
Chavez added a sacrifice fly in the eighth that made it 5-2.
"He calls a good game, and it's nice to have him back there," Duke said. "When he drives in three runs, it's really nice to have him back there."
Chavez was recalled from Triple-A Indianapolis on May 14 when Ryan Doumit was injured and has received a majority of the playing time since. Chavez, who is in the major leagues for the first time since getting 28 at-bats with Baltimore in 2006, was hitting .306 at the time of his recall.
"I worked hard in Indianapolis with (hitting coach Hensley Meulens)," he said. "I feel good at the plate. It helps when you're playing every day."
Xavier Nady, who entered the game 1-for-17 lifetime against Oswalt, went 2-for-3. Freddy Sanchez was 2-for-4, as every Pittsburgh starter had at least one hit.
Oswalt has 11 wins against Pittsburgh since joining the major leagues in 2001, tied with Cincinnati's Aaron Harang for the most by any pitcher over the Pirates in that time. ... Houston 1B Lance Berkman was called for obstruction and charged with an error when he collided with Jack Wilson during a rundown in the fifth. Wilson was awarded second base and scored on Nate McLouth's hit. Cooper briefly argued the call. ... Matt Capps pitched a 1-2-3 ninth for his 12th save.