Nate McLouth, Jason Bay and Chris Gomez each had two hits for the Pirates, who have lost four of five and seven of 11 since having a six-game winning streak snapped. McLouth had a two-run triple.
Reed Johnson went 3-for-5 with two runs and four RBIs, hitting a three-run homer for the Cubs, who scored at least one run in every inning but the seventh and ninth. Aramis Ramirez (three hits, three runs), Mark DeRosa (2-for-3, two runs, three RBIs) and Zambrano (4-for-5, two RBIs) were among the offensive stars for Chicago.
"We didn't execute very well as far as pitching, and they took advantage of it," Pirates manager John Russell said. "Against a team like that, I don't know if there was much we could have done tonight the way we swung the bats, but we didn't start out very well."
In each of the first six innings of the game, the Cubs' leadoff batter reached base and scored.
The Cubs have outscored the Pirates 81-41 this season, having averaged 8.1 runs per game against them.
"If you take our record against them away, we're a pretty good ballclub," Gomez said. "I was joking about that [earlier], but they've got our number. That's obvious. We've only won one game, and the games we've lost feel like blowouts, so we've got our work cut out for us. We've got to find a way to turn it around."
The first-place Cubs have the best record in the National League and have won 10 of their past 14. They lead the league in runs scored, and it was easy to see why Friday. Their 7-8-9 hitters (DeRosa, Johnson, Zambrano) combined to go 9-for-13 with nine RBIs, six runs scored, four doubles and Johnson's homer, his second.
"We've obviously faced them before and know they're a good hitting ballclub," Russell said. "They take advantage of any mistakes we make and they hit the ball hard. We've got to eliminate getting too much of the plate. We've got to make quality pitches on them. And when we don't, they take advantage of it. That's why they have won a lot of games."
Duke (2-3) struggled, and the Pirates lost for the first time during his past four starts. Although he did not walk a batter, he recorded only one strikeout, and four of the runs charged to him were earned.
"It's tough to get hitters out when you're throwing everything right down the middle," Duke said. "That's the long and short of it."
"He left some balls out over the plate that they got to, and it kind of snowballed on him a bit," Russell said.
Zambrano (7-1) moved into a tie for second in the NL in wins by permitting only two runs on six hits in seven innings, walking one and striking out six. He would actually collect almost as many hits at the plate as he allowed. Zambrano became the first Cubs pitcher in 44 years to have four hits in a game. Lew Burdette did it July 23, 1964.
Zambrano improved to 10-6 lifetime against the Pirates. Oddly, the ace's previous start this season (last Saturday) was the only one the Bucs won against the Cubs this season.
"Maybe we just did a good job last time," Gomez said. "He got a little wild in Wrigley, I think, but he had a big lead early tonight, and it's tough to come back against someone like that when he has such a big lead. He's just doing what he does. He's nasty. He's pumping strikes and working fast."
Despite the apparent discrepancy between the two clubs this season, Chicago manager Lou Piniella said his team's dominance in the season series is just a fluke.
"The Pirates are a nice ballclub," Piniella said. "They've got nice talent over there and they've been playing well. We've had our way here early in the year, but we play them quite a few more times, and we have to keep playing. They play hard. We've been fortunate. How do you explain that we've lost  in a row to the Florida Marlins? Sometimes these things happen. I know when you're on the wrong side, you don't like it. You take away their record against us, and they're above .500."