"He throws strikes, works fast and keeps everybody on their toes," Astros manager Brad Mills said. "Anytime you get four runs ahead with Lucas, you got a real good chance of it being a good night.
"You give him the lead, he's not going to relinquish it," Mills said.
Harrell (10-8) scattered six hits and struck out six, helping the Astros win for only the third time in their last 28 road games. Harrell has allowed two runs or fewer in all seven of his starts since the All-Star break.
The 27-year-old rookie threw 78 of his 104 pitches for strikes.
Harrell got plenty of support in Houston's biggest offensive outburst since scoring 11 runs in Chicago on June 10 against the White Sox. Houston had scored just 11 runs combined in its last six losses on the road.
Harrell retired the first eight Cubs before starting pitcher Chris Volstad singled with two outs in the third, his first hit of the season. Harrell induced two double plays and nearly got a third when Barney just beat Tyler Greene's relay in the seventh, allowing Starlin Castro to score.
Harrell has won three of his last four starts, and his 10 wins account for more than one-quarter of Houston's 39.
"I always felt like if I had the opportunity, I could perform," Harrell said. "It was just getting the chance. That's why I feel blessed to be here with the Astros in this organization. They really took a chance on me. Hopefully I can make them look smart about it."
Volstad (0-9) lasted just five innings, allowing eight hits and four runs in his latest bid for his first big league win since July 10, 2011. He hasn't won in his last 23 starts and is approaching the major league record of 28 held by Cliff Curtis, Matt Keough and Jo-Jo Reyes.
"There was nothing real crisp going on. Even the balls that were hit were hit hard," Cubs manager Dale Sveum said. "He didn't have command of his fastball or have quite the sink that he's had the last couple of outings."
Volstad fell to 0-14 with a 5.51 ERA during his winless skid.
Darwin Barney drove in the Cubs' run with a fielder's choice in the seventh.
The Cubs have lost 12 of 14 and matched their season high by falling 25 games under .500, their worst record since finishing the 2006 season 30 games below break-even.
Wallace's homer to straightaway center in third gave Harrell an early cushion. Martinez's drive to almost the same spot in the sixth broke the game open. It was Martinez's first homer of the season. He was recalled from Triple-A Round Rock on Friday.
Houston's five-run sixth inning was aided by Castro's error on a likely double-play ball, his 18th miscue of the season. He tied Pittsburgh third baseman Pedro Alvarez for the most errors in the majors.
Moore doubled in Altuve in the first to open the scoring and kick off his best night as a big leaguer. Moore, who broke into the majors with the Cubs in 2006, doubled and scored in the sixth and hit a solo homer to right in the seventh.
Mills said RHP Francisco Cordero (sprained ligament in toe) likely won't return until Sept. 1. ... The Cubs announced that Albert Almora, their top pick in June's draft, had been promoted from rookie league Mesa, Ariz., to Class-A Boise. Almora, 18, hit .347 with one homer, 13 RBIs and five steals in 18 games for Mesa. ... Sveum said RHP Matt Garza had not been ruled out for the season but was still more than a week away from resuming throwing. Garza was placed on the disabled list July 28 because of stress reaction in his right elbow