Starlin Castro went 3-for-5 with four RBI and a run scored and Chicago took advantage of seven errors from Pittsburgh to take a 12-2 victory in the first of three from PNC Park.
Alfonso Soriano had three hits, three RBI and a run scored while Luis Valbuena added two RBI and two runs scored for the Cubs, who snapped an eight-game road losing streak.
Travis Wood (5-11) gave up just one hit and three walks along with five strikeouts in six innings of work as he won for the first time since July 6. He was 0-8 in his previous 10 starts.
"It was nice to come here against one of the better teams in the National League and put together a game like this," said Chicago manager Dale Sveum. "We haven't had many of those and with the young guys we have here, that's a huge boost to their confidence."
Michael McKenry and Starling Marte each drove in a run for the Pirates, who saw a two-game win streak come to an end and committed their most errors in one game since September 1985.
A.J. Burnett (15-6), who came into the game with a 6-0 record in seven starts against the Cubs in his career, was touched for seven runs -- three earned -- on eight hits in five-plus innings of work.
"I've never been part of a game with seven errors," said Pittsburgh manager Clint Hurdle. "None of the guys in here are proud of that and it stings to have it happen to your."
The Cubs worked a run across in the first inning. Valbuena reached base on a one-out walk and Anthony Rizzo made it to first when he hit a grounder to second that Brock Holt misplayed. Soriano then hit a grounder up the middle that was just out of the reach of shortstop Josh Harrison and Valbuena came around to score.
In the third, Chicago added to its lead. With two outs, Rizzo kept the inning alive with a single and moved to third when Soriano singled to left and Marte's throw was off. Castro then scored both runners with a single, moved to second on the throw home and crossed the plate on a Steve Clevenger single for a 4-0 lead.
With two outs in the fourth, Andrew McCutchen hit a long fly ball to left field that was about to go out of the park, but Soriano made a leaping catch in front of the wall to keep Wood's no-hitter going.
Pedro Alvarez, though, spoiled the no-hitter when he doubled with two outs in the fifth, but Rod Barajas flied out to end the frame.
Things fell apart for the Pirates in the sixth inning. Brett Jackson led off the frame with an infield single then moved to second on a wild pitch. Darwin Barney then hit a grounder to short and Jackson barely beat the throw and tag at third. Hurdle came out to argue the call and was ejected.
Wood then laid down a bunt in front of the catcher and Barajas went to second, but his throw was off, loading the bases with no outs. David DeJesus then hit a grounder to first and Gaby Sanchez went home, but his throw pulled the catcher off the plate and everyone was safe. After a pitching change, Valbuena doubled to bring in two and it was a 7-0 game. Chris Leroux took the mound after a walk again loaded the bases and set the next three batters down in order.
The parade of errors continued in the seventh. Tony Campana, who was pinch- hitting for Jackson after he crashed into the wall in center field catching a fly ball from McCutchen to end the sixth, led off by reaching base on a Harrison error. Three batters later, DeJesus made it to first on a Holt error and Valbuena walked to load the bases. A walk to Rizzo brought in one, Soriano followed with a two-run single and Castro hit a two-run double to make it a 12-0 contest.
McKenry doubled in a run in the eighth while Marte added a sacrifice fly later in the inning to get the Pirates on the board.
Jackson suffered a bruised left knee on the play on McCutchen's fly ball ... Castro now has 501 hits in his career. He became the 28th player in MLB history to reach 500 hits before turning 23 ... Barney recorded his 123rd straight game without an error, a National League single-season record. He tied former Cub Ryne Sandberg for the longest consecutive streak by a second baseman in National League history as Sandberg turned the feat from June 21, 1989-May 17, 1990. The longest ever single-season streak was 141 games by Placido Polanco when he was with the Tigers in 2007 ... McCutchen went 0-for-3 and had a string of 40 straight games reaching base against the Cubs snapped.