Matt Garza pitched into the ninth inning and Anthony Rizzo hit his first home run since May 18 to lead the Cubs over the Houston Astros 3-1 on Friday after a rain delay that lasted more than 3 hours.
Darwin Barney and Scott Hairston also homered for the Cubs.
The subject of trade speculation, Garza (2-1) allowed four hits and struck out eight in eight-plus innings for his first win since beating Arizona on May 31.
Garza, who threw seven scoreless innings Sunday in a no-decision against the Mets, walked Jose Altuve to begin the ninth and was replaced by Kevin Gregg, who earned his 11th save in 11 tries.
Chris Carter broke up Garza's shutout bid with a leadoff homer in the seventh. Carter's 15th home run was a sharp line drive to right-center.
Rizzo, who entered in a 4-for-40 slump, finished with two hits after the start was delayed by rain for 3 hours, 18 minutes. The first baseman agreed to a $41 million, seven-year contract on May 13 and has struggled since the deal, hitting .200 with one home run and 11 RBIs.
Barney was a triple short of the cycle for Chicago, which had lost four of five and scored 11 runs in its last five games. Hairston added a solo home run off Dallas Keuchel in the sixth to make it 3-0.
Keuchel (4-4) lost for the second time in three decisions, pitching six innings and giving up three runs and nine hits while striking out a career-high nine. Houston had won six of eight.
It was the first interleague matchup between the Astros and Cubs. The teams had played 705 times in the National League since 1962 and had been NL Central foes before the Astros shifted to the American League this season.
Carlos Pena, who led the 2011 Cubs with 28 home runs, played the 1,458th game of his career but the first against Chicago. Facing Garza, a teammate on the 2008 AL champion Tampa Bay Rays, Pena was 0 for 3 before grounding out against Gregg to end the game.
While a former Cubs first baseman was returning to Wrigley, the current one gave Chicago the lead.
Rizzo's home run on the first pitch of the fourth gave the Cubs a 1-0 advantage. His 11th homer of the season was a towering drive to right field that landed outside Wrigley Field and traveled an estimated 410 feet.
Dioner Navarro and Ryan Sweeney followed with singles, but Garza struck out swinging to end the inning.
Barney led off the fifth with his fourth home run, sending a 1-2 pitch from Keuchel into the left-field bleachers. Keuchel hadn't allowed multiple home runs in any outing, and only seven all season before giving up three Friday.
Hairston's home run in the sixth came on an 0-1 pitch and landed well into the left-field bleachers for the Cubs' third straight inning with a solo home run.
NOTES: The Cubs traded Triple-A infielder Brent Lillibridge to the New York Yankees for a player to be named or cash. Lillibridge had one hit in 24 at-bats before being sent down to Iowa on April 18. ... Astros RHP Edgar Gonzalez began a rehab assignment with Triple-A Oklahoma City. Gonzalez went on the 15-day disabled list with a right shoulder strain May 26. ... Houston 1B-OF Marc Krauss made his major league debut in the eighth and struck out swinging. Krauss joined the team after being promoted from Oklahoma City, where he hit .277 with nine homers and 35 RBIs. He was brought up to replace Trevor Crowe, who went on the 15-day DL with a right shoulder injury sustained Thursday. ... Bud Norris (5-7, 3.64 ERA) pitches Saturday for Houston against Travis Wood (5-6, 2.74).