HOUSTON (AP) Chris Heston was glad he was given the opportunity to go back out to the mound in the ninth inning.
He was even happier that he was able to capitalize on the chance.
Heston's first career complete game was a two-hitter and he struck out 10 as the San Francisco Giants won for the third time in four games with an 8-1 victory over the Houston Astros on Tuesday night.
''That was awesome,'' Heston said of starting the ninth. ''I will remember that forever.''
Matt Duffy had three hits and drove in five runs for the Giants. It was the most RBIs by a Giants rookie since Buster Posey had six July 7, 2010, at Milwaukee.
Heston (3-3), a rookie right-hander who retired the last 22 batters, has allowed two runs or fewer in five of his seven starts this season.
''I had times where I got into little grooves, and luckily, I got into one there,'' Heston said. ''I had good innings back-to-back, so that helped a lot.''
Heston was the first Giants rookie to throw a complete game with 10 strikeouts since Roger Mason on Oct. 4, 1985, against Atlanta.
''He really had his stuff working,'' Giants manager Bruce Bochy said of Heston. ''He had a great breaking ball to go with that sinker. He threw a lot of strikes out there and kept them off balance.''
Duffy, had a 3-run double in the second inning and added a 2-run single as part of a 5-run fifth. Angel Pagan had three hits for San Francisco, which had a season-high with the eight runs.
''I'm just seeing the ball well and not thinking too much,'' Duffy said. ''It feels good, especially today putting up runs like that. When a pitcher pitches a game the way Heston did, it feels good to put up that many runs for him.''
Jason Castro homered in the second inning for Houston.
''We weren't very disciplined,'' Houston manager A.J. Hinch said. ''That's the disappointing part. We just had no action. He (Heston) pitched, and we really didn't counter with a ton of back-to-back quality plate appearances.''
The Giants made it 5-1 after loading the bases in the fifth. After Brandon Belt struck out for the second out, Jason Maxwell had an infield single to shortstop Marwin Gonzalez, whose throw to second was errant, allowing Joe Panik and Pagan to score.
Brandon Crawford followed Maxwell with an RBI double to center before Duffy's single made it 8-1.
Collin McHugh (4-1) lost for the first time since August 2014. He allowed seven runs - three earned - and seven hits in 4 2-3 innings. The loss snapped McHugh's streak of 11 straight decisions with a win.
''It was pretty much tough from the get-go,'' McHugh said. ''Command wasn't there, stuff wasn't there. Makes for a pretty bad combination.''
Giants: OF Hunter Pence (left forearm) continued an injury rehab assignment Tuesday at Triple-A Sacramento. Pence is 1 for 8 with an RBI and two runs scored in three games.
Astros: OF George Springer began an injury rehab assignment Tuesday for Double-A Corpus Christi against San Antonio. Springer is on the 7-day concussion DL backdated to May 6. Springer will be activated from the DL on Wednesday, and OF Robbie Grossman will be optioned to Fresno. ... RHP Luke Gregerson was activated from the Family Medical Emergency List Tuesday.
Giants: RHP Tim Hudson (1-3) is looking to rebound after allowing six runs and a career-high 15 hits over 6 1-3 innings in a 7-2 loss to Miami on Thursday. Hudson is 5-0 with a 1.24 ERA in seven career starts against the Astros.
Astros: LHP Brett Oberholtzer will come off the DL and make his first start of the season in the finale of the two-game series. Oberholtzer, who has been on the DL with a left index finger blister suffered at the end of spring training, was 1-1 with 11 strikeouts and allowed seven runs in two rehab assignments with Triple-A Fresno.
STREAKING AND SLUMPING
Duffy extended his hitting streak to six games with the three hits. During his hitting streak, Duffy is 10 for 20. ... Houston's offense has hit the skids. Gonzalez is 0 for his last 16; Evan Gattis is 0 for his last 17; and Jose Altuve, who led the majors in hits last season, is 0 for his last 10.