While Harrell shook off the poor start and kept the Rockies under control, the Astros' bats erupted for six runs in the sixth inning, capped by back-to-back home runs from Chris Carter -- a three-run shot -- and Matt Dominguez for a 7-5 win, their second straight in Colorado.
"Normally when you make four errors, especially in a ballpark like this, you're looking at a bunch of crooked numbers," Porter said. "We did a good job of minimizing the damage and holding them to one run when we had three errors in one inning."
The Astros, who won three of four games in the home-and-home series with the Rockies, have gone 7-7 in their last 14 games.
"Early on in the season, you come out of spring and you're kind of feeling your way through it," Porter said. "Now we're starting to hit our stride."
Astros outfielder J.D. Martinez, who struck out five times Monday against the Rockies, torched Colorado pitching in the three ensuing games and went a career-best 4-for-5 on Thursday. He's 15-for-35 (.416) in his last eight games, with two homers and eight RBIs.
"I just felt like a lot of this series, the strikeouts and stuff, I was catching myself thinking too much," Martinez said. "I was guessing the situation and what they're going to throw me and stuff like that. Today I said, 'I don't care, I'm going to react. I'm going to look for the ball in a spot and if it's there, I'm going to react to it.' I felt like that's what I did today."
Harrell (4-6) snapped a personal four-game losing streak and won for the first time since April 29 by allowing four runs (three earned), eight hits and four walks in 5 2/3 innings. He said he did some "soul-searching" after lasting just 1 2/3 innings Saturday against Oakland.
"I just battled the whole game," Harrell said. "It was one of those games we had to grind it out, and I was just trying to keep the game close and give us a chance to win. And hopefully we would score a few runs, and that's what happened tonight. The bats came through in a big situation and scored some big runs."
Brad Peacock threw 2 1/3 innings of scoreless relief, and Hector Ambriz worked the ninth for his first career save.
"We should have put the game away early, and we didn't do it," Rockies manager Walt Weiss said. "It's happened a few times this year."
Harrell need only seven pitches to record two outs to start the game before running into trouble. He walked the next two batters and gave up an infield hit to Michael Cuddyer that allowed Carlos Gonzalez to score the game's first run.
The Rockies took a 2-0 lead in the second on an RBI single by Dexter Fowler, and Harrell proceeded to hit DJ LeMahieu and walk Gonzalez to load the bases before getting Troy Tulowitzki to fly out for the last out. Harrell threw 54 pitches through two innings.
The Astros committed three errors in the third, including two by shortstop Ronny Cedeno, which allowed Todd Helton to score on a single by Yorvit Torrealba. Harrell did a nice job escaping serious damage by getting Fowler to hit into a 1-2-3 double play with the bases loaded to end the inning.
"It was really sloppy, but you looked up at the scoreboard and it was only 3-0," Porter said. "We were very fortunate that it wasn't more than three runs, and in this ballpark a three-run lead is not a significant amount of runs because of the nature of the ballpark. Lucas did a good job of not letting it snowball like it did his last outing."
Being a ground-ball pitcher, Harrell had to maintain faith in his infield defense.
"I wanted to keep getting ground balls and keep letting them hit the ball because Cedeno is a good infielder and everybody has a rough day and he's made some great plays behind me," Harrell said. "It's one of those things -- I trusted him and was trying to get him another ground ball."
Trailing 3-1 in the sixth, the Astros chased Rockies starter Juan Nicasio (4-2) with four consecutive hits by Jose Altuve, Jason Castro (2-for-3), Martinez and Carlos Pena, who reached on an infield hit to tie the game at 3. Carter crushed a 3-2 pitch from former Astros reliever Wilton Lopez to make it 6-3, and Dominguez followed with his eighth homer.
"Whenever you get a big-time home run like that [from Carter], that puts your club ahead, that ball was covered pretty good," Porter said. "Chris is a strong man, and he really got into that ball. It was a big lift for the whole ballclub."