"He made one mistake with a breaking ball and they hit a three-run homer," DeFrancesco said.
The Astros plated three off Barry Zito to pull within one after three innings. It stayed that way until the sixth, when a throwing error cost the Astros.
Reliever Mickey Storey, who came into the game with Marco Scutaro and Pablo Sandoval on base, induced a 5-3 double play. The next batter, Pence, hit a ground ball to Scott Moore, but the third baseman's throw was low and wide of first baseman Brett Wallace.
"It's definitely not an easy play, especially with Hunter running. Hunter's fast and aggressive," Wallace said. "I think [Moore] saw the play that he had to make and he tried to make it and obviously didn't. I think we're really comfortable with him over there making that play."
The Giants took advantage. Joaquin Arias tripled off left fielder Fernando Martinez's outstretched glove, scoring Sandoval and Posey and giving the Giants a 6-3 lead.
The Astros rallied in the sixth off reliever Guillermo Mota. Chris Snyder walked with one out and Marwin Gonzalez followed with a single. Moore's RBI single off reliever Jose Mijares made the score 6-4. Jose Altuve walked to load the bases with two outs, but pinch-hitter Brian Bogusevic struck out to end the inning.
Moore finished the night 2-for-2 at the plate, ending an 0-for-21 skid.
Keuchel's night didn't start well, but he refused to blame the inner-ear problems that have plagued him for a little over a week.
Angel Pagan led off the game with a double down the third-base line. He moved to third on Scutaro's bunt and scored on Sandoval's single to left field. Buster Posey walked before Pence blasted a three-run homer to left.
"I just wasn't locating well in the first inning," Keuchel said. "I made a few bad mistakes."
Keuchel found a groove after allowing the homer, retiring the next 14 Giants. He said he and catcher Snyder tried to attack the inner half of the plate with four-seam and cut fastballs.
Scutaro ended the streak with a double to lead off the sixth. DeFrancesco decided to pull Keuchel after he issued a walk to Sandoval to conclude a 10-pitch at-bat.
Keuchel's pitching line: five innings, four hits, and five runs (four earned) on 83 pitches.
The Astros chased Zito from the game after 2 1/3 innings. After doubling in the second, Snyder came home on Brandon Barnes' single and was able to elude Posey's tag to give the Astros their first run. Altuve and Tyler Greene scored after leading off the third with singles.
The Astros finished with 10 hits compared to the Giants' five, three of which came in the first inning. Relievers Storey, Hector Ambriz, Xavier Cedeno and Rhiner Cruz allowed one hit in four total innings of work. It wasn't enough on this night, but DeFrancesco expects the results to change soon.
"I'm real pleased with the bullpen," DeFrancesco said. "It just seems like we're snakebitten one more time with one mistake [leading to] a couple of runs."
Left fielder Ben Francisco was scratched from the lineup immediately prior to the game with a strain in his right wrist. Martinez replaced him in left and batted fifth. Right fielder Jimmy Paredes, originally batting fifth, batted fourth in place of Francisco.
With outfielder Justin Maxwell still limited by a bruised right index finger, the Astros only had left-handed hitters available in the dugout.
DeFrancesco remains upbeat about how his team is playing.
"I feel like something good is going to happen," DeFrancesco said. "I don't know when it's going to start. Hopefully tomorrow is the day to break out and put some smiles on some faces. It's been a tough season for them, and since I've been here the attitude has been awesome and they've been feeling it, and I'm pushing them every day."
Wallace, who went 2-for-4 to boost his average to .298, said it isn't like the team is getting blown out every day. The Astros have lost each of their last four games by two runs or fewer.
"We're definitely putting ourselves in a situation to win," Wallace said.