PITTSBURGH -- The Chicago Cubs waited a long time for Nomar Garciaparra to get healthy and start hitting.
Garciaparra, who missed most of the season with a groin injury, hit his fourth homer in six games and Jerome Williams pitched four-hit ball into the eighth inning as Chicago beat the Pittsburgh Pirates 2-0 Sunday to complete a three-game sweep.
"After you have the injuries and that stuff, it's just good to get out there playing," Garciaparra said. "I'm just trying to see the ball and drive it. I'm getting good concentration and have been able to drive the ball."
Re-signed to an $8 million, one-year contract in the offseason, Garciaparra did not hit his first home run until Aug. 9 after spending April 21 to Aug. 5 on the disabled list. He connected leading off the second inning Sunday and finished 2-for-4 with his sixth home run.
"Having Nomar in the center of that lineup," Cubs manager Dusty Baker said, "is a big offensive threat for us."
Williams (5-7) combined with three relievers on a four-hitter. The right-hander, who had lost four of five decisions and got only five outs in his previous start against the Dodgers, walked two and struck out five in 7 1/3 innings.
"I was very pleased," Baker said. "He had his control today and was changing speed. He didn't throw a lot of balls in the same location and used various speeds."
Williams was asked what he thought he did well.
"Everything," said the 23-year-old who came over from San Francisco in a midseason trade. "Concentration, number one, and getting the ball over the plate where I wanted to."
Ryan Dempster fanned all three batters in the ninth for his 22nd save.
Pittsburgh has lost four straight, nine of 10 and 14 of 18. The Pirates have also dropped eight in a row at home, their longest skid at PNC Park since it opened in 2001.
"The name of the game is scoring runs and right now we are not doing it," second baseman Freddy Sanchez said.
The Cubs have won seven consecutive games in Pittsburgh, tying a club record last accomplished from 1896-97.
Jeromy Burnitz doubled to score Neifi Perez in the sixth. Chicago then appeared poised to break the game open with runners on second and third and none out, chasing Kip Wells. But Salomon Torres retired Garciaparra on a popup behind the plate and, after an intentional walk, got Michael Barrett to bounce into a double play.
Wells (7-15), who has lost 11 of 12 decisions since June 8, pitched relatively well, allowing two runs and six hits in five-plus innings.
"We lost, that's what it all boils down to," Wells said. "As a starter, you want to have quality starts and give your guys a chance to win, but what can you say?"
Wells might have helped his team win had it hit better in clutch situations. The Pirates entered the game leading the National League by hitting .288 with runners in scoring position and were batting .389 (14-for-36) their previous four games in such situations.
But Pittsburgh had precious few opportunities to improve on that statistic Sunday, advancing a runner as far as second base in only three innings. In the second, Daryle Ward and Ty Wigginton singled to start the inning, but Humberto Cota struck out and Jack Wilson grounded into a double play.
With Craig Wilson on third and Ward on second with one out in the seventh, Williams struck out Cota and Jack Wilson grounded out.
When Williams walked Sanchez with one out in the eighth, Baker replaced him with left-hander Will Ohman, who struck out Brad Eldred. Roberto Novoa then came on and -- after throwing a wild pitch that advanced Sanchez to second -- got Jason Bay to ground out.
"Sometimes you have to give credit where credit is due," Pirates manager Lloyd McClendon said. "But from an offensive standpoint, we just are not swinging the bats worth a dime. We had opportunities time and time again. We just couldn't put anything together."