Trout is the first American League player with 70 extra-base hits, 30 stolen bases and 100 walks in a season. He is one of only six players in MLB history with 100 walks in their age-21 or younger season, and the sixth Angels player all-time with 100 runs and 100 walks in a season.
He drew his 100th walk of the season with two out in the first inning, stole second, and scored when Josh Hamilton followed with a triple off the glove of Astros center fielder Brandon Barnes, who raced up the hill in front of the 436-feet sign and nearly made the catch.
"There aren't many ballparks that are going to hold that ball," Angels manager Mike Scioscia said. "That ball was crushed to center and I think in any [other] ballpark we're playing in, that's a two-run homer. Here, Barnes almost makes a heck of a play on it."
Astros starter Paul Clemens (4-5), who threw seven innings and allowed two runs on six hits, said he wouldn't have been surprised had Barnes made the catch.
"You never know with Barnes," Clemens said. "Barnes seems to catch everything. Sometimes when you get behind in counts, you turn around and give Barnes a little nod and you see if he can run them down.
"Ninety-nine percent of the time, he runs them down. That guy's been tremendous out there for us all year and we don't expect anything different out of him."
Astros left fielder Marc Krauss tied it with a two-out homer in the second inning, but the Angels took a 2-1 edge in the fifth inning. Erick Aybar and Hank Conger singled, and Andrew Romine lifted a sacrifice fly to left field.
Williams improved to 8-10, turning in his best performance since going 7 2/3 against the Texas Rangers on July 31 for his third straight win. The Angels' right-hander went seven innings and gave up just five hits, four of them singles. He struck out three and did not walk a batter, but hit Matt Dominguez in the fourth inning.
Staying down in the zone was the key to Williams' success.
"I probably threw three balls up in the zone, two by design, one by accident," Williams said. "That one by accident was a homer."
Williams retired the last seven batters he faced. That streak would have been 10 if not for an error in the fifth inning by the usually sure-handed Aybar.
"We played good defense," Scioscia said. "Erick, outside of that one ball that skidded on him, made some nice plays at short and turned a couple of double plays."
Reliever Dane De La Rosa, making his 70th appearance of the season -- a club record for a rookie -- gave up a single and a walk to open the eighth inning, prompting Scioscia to call on Ernesto Frieri, who fanned Trevor Crowe and Brett Wallace to end the threat, then stayed in to close the ninth.
"Right there, where the game was, we were just trying to get out of the eighth inning and hold the lead," Scioscia said. "If Ernie had used too many pitches there, we take our chances in the ninth. Certainly wasn't our preference to have Ernie go six outs, especially when he's got to throw 25 or 30 pitches. He saved the game today."
Frieri earned his 34th save of the season, the first two-inning save of his career.
"I felt pretty good," Frieri said. "I had a couple of days off, and this time of the season, your arm is 100 percent ready to go. You just have to stay ready down there [in the bullpen], and whenever they call asking for you, you've got to be ready both mentally and physically."
Dominguez made him work in the ninth inning. A 12-pitch at-bat, in which Dominguez fouled off eight pitches, resulted in a single -- the only hit allowed by Frieri.
"This game doesn't get easy," Frieri said. "When guys get to know you and get to know what kind of pitches you throw, it's tough. That's why you keep needing to make adjustments, improving yourself and working hard.
"They know that I use my fastball a lot. Even when I threw a lot of good breaking balls down, he still fouled it off. He's a good hitter."
Frieri said he threw mostly fastballs to Dominguez, except for three sliders and one changeup. The base hit came on a changeup.
But Frieri retired the next three hitters in order. He struck out four of the seven batters he faced.