CHICAGO -- If Cubs right-hander Matt Garza is on the trading block, as rumored, at least he'll leave fans something to remember him by.
Garza worked a sparkling eight innings, the most since returning in May from the disabled list, as the Chicago Cubs topped the visiting Houston Astros 3-1 in a rain-delayed contest on Friday at Wrigley Field.
"I feel like everything's coming back slowly but surely," said Garza (2-1) after his seventh start of the season. "I'm getting back to being more fluid and free and easy and not forcing a lot of stuff."
He allowed just one earned run in a season-high eight innings and gave up just four hits, walked a pair and struck out eight. The effort came on top of seven scoreless innings in his previous outing, a no-decision on July 15 at New York.
"He was very good, his fastball had life and command," said Cubs manager Dale Sveum.
Garza got support from three teammates -- Anthony Rizzo, Darwin Barney and Scott Hairston -- who each slammed solo home runs in an interleague series opener which got under way following a 3-hour 18-minute rain delay.
After walking a leadoff batter in the ninth, Garza departed in favor of right-handed reliever Kevin Gregg, who finished up the ninth without another base runner for his 11th save.
"(Garza) had all three pitches working tonight," said Astros manager Bo Porter. "He threw them all for strikes, he threw them in different counts and did a great job of attacking our hitters."
Astros lefty Dallas Keuchel (4-4) worked six innings with three earned runs, nine hits and nine strikeouts while walking just one. Four relievers worked the final two innings.
"I thought (Keuchel) made a couple of mistakes and they made him pay for it," Porter said. "But they were all solo home runs and he did a good job of keeping us in the game. Unfortunately, offensively we couldn't muster much off their guy."
The victory snapped a two-game Cubs losing streak.
Rizzo led off the fourth with a towering home run that sailed past the right-field foul pole and landed on Sheffield Ave. The homer, Rizzo's 11th of the season, came on Keuchel's first pitch with none on base.
Barney made it 2-0 in the fifth when he added another solo shot -- his fourth homer of the season -- to left field to start the inning.
Hairston collected his sixth homer in the sixth inning. His one-out home run to left with nobody on base gave Chicago a 3-0 lead.
"Even though it was a long delay with the rain delay I still felt good with the fastball early on," Keuchel said. "They touched me for two solos (on) first at-bats but other than that I felt pretty good and kept the team in the game. And that's all I can ask for."
The Astros got one run back in the sixth when Chris Carter homered to left off Garza with none on for his 15th of the season.
Starlin Castro doubled off reliever Paul Clemons with one out in the eighth and reached third on Dioner Navarro's grounder to second. Clemons departed after walking Hairston, leaving runners on first and third.
The threat ended as Castro was tagged at the plate in a sequence that began after Hairston tried to steal second.
Both teams had opportunities in earlier innings but failed to score.
Carter led off the Houston second with a double but never advanced.
The Cubs had runners at first and second with two out in the third. Barney reached with a double down the third-base line and Cody Ransom walked, but Alfonso Soriano grounded to short to end the threat.
Stormy weather rumbled through the Chicago area late Friday morning and hit Wrigley Field in the early afternoon, delaying the first pitch until 4:38 p.m. CST. By late in the game, weak sunshine peaked out from the west.
Houston sends right hander Bud Norris (5-7, 3.64 ERA) against Chicago's Travis Wood (5-6, 2.75 ERA) in Saturday's middle game of the three-game weekend series.
NOTES: The Astros' trip to Wrigley Field is their first as a member of the American League. The former National League Central Division rivals played their final NL games on Oct. 1-3, 2012, with Houston taking two of three. ... Entering Friday, Astros starters had posted a 2.96 ERA in 34 games since May 15, tops in the American League in that span. ... Carlos Pena's walk-off homer in Thursday's 7-4 win over Milwaukee was the sixth of his career and first since Aug. 6, 2008 against Cleveland while with Tampa Bay. ... Norris made his major-league debut against the Cubs on July 29, 2009 and tossed three innings of relief. ... The Cubs announced Friday they traded minor league outfielder Brent Lillibridge to the Yankees for cash or a player to be named later. ... As the Cubs close in on the season's halfway point they are five wins better than 2012. Entering Friday they were 29-42 through 71 games compared to 24-47 in 2012. ... The Cubs' Triple-A Iowa team moved into sole possession of first place in the Pacific Coast League's American Northern Division with Thursday's 6-4 victory over Nashville. Steve Clevenger (.340) went 0-for-4 with a walk and run scored in the 14th game of his rehabilitation assignment. ... Barney has now played 58 errorless games through Friday and had a 61-game streak dating to Sept. 30, 2012. Last year he tied a National League record with 141 consecutive error-free games at second.