ANAHEIM, Calif. -- Mike Trout keeps padding his stats with 1½ weeks to go until the All-Star break.
Trout sent an 0-2 pitch from Tony Sipp over the wall in left-center field and charged into a celebratory mob at home plate. Teammate Erick Aybar doused Trout with a blue sports drink, staining his white uniform, and fans chanted "MVP! MVP!"
"The adrenaline rush you get when it goes out, it's something special. It's always good to come up big," Trout said. "What a comeback. We were up three, they came back and scored five, and we just kept fighting."
It was Trout's second career walk-off hit, both of them homers. The American League player of the month for June hit his team-leading 20th homer and has eight homers in his past 18 games. Trout became the eighth Angels player with 20 or more homers and at least 60 RBIs before the All-Star break and the first since Vladimir Guerrero in 2004.
"It's one of those things where you see the pitch and see the swing, and you say to yourself, 'There's not many players in our game that can do what he did with that pitch,'" Astros manager Bo Porter said.
Trout figures to start in center field in the All-Star game on July 15 in Minneapolis.
Joe Smith (3-0) got the victory for the Angels, who have won eight in a row at home for the first time since Sept. 16-24, 2005, and have the majors' best record at home. Los Angeles has won 11 of 14 overall.
Sipp (1-1) took the loss for the Astros, who dropped their fifth in a row.
"I went at him with my best stuff," Sipp said about Trout. "But even when you make a good pitch sometimes, a guy of that caliber will put a good swing on it."
Houston's Jose Altuve, who came in leading the AL in hits, stolen bases and batting average, went 0-for-5 with a strikeout.
The Angels blew a 3-1 lead in the third and then trailed 6-5 on Albert Pujols' 510th career homer -- a two-run shot -- in the fourth. They tied it 6-all in the seventh on Howie Kendrick's RBI double off the right field wall that scored Pujols, who singled leading off. Pujols was 3-for-4, and Kendrick went 4-for-4.
"You never know who's going to step up," Trout said. "Howie came up with a big double, I put a good swing on it in the ninth and it went out. I'm going to swing if it's close."
Angels starter C.J. Wilson continued to struggle. The left-hander has failed to pitch more than five innings in four of his last seven starts. He gave up six runs and seven hits in 4⅓ innings, struck out six and walked one. Wilson was watching game video in another room afterward.
Houston starter Dallas Keuchel allowed five runs and 13 hits in five innings, struck out one and walked one. The left-hander was scratched last Saturday against Detroit because of left wrist inflammation. He was making his first appearance since June 22, when he allowed five runs -- four earned -- in a 5-2 loss to Tampa Bay.
"That was very disappointing on my part," Keuchel said. "The offense did more than enough to come out with a win, and I just didn't do my part. I haven't been too good as of late, so I guess I have to go back to the drawing board and figure some stuff out."
Trout became the 13th major league player aged 22 or younger with 20 or more homers before the All-Star break. ... Houston activated RHP Josh Fields from the 15-day DL after he went on it because of soreness in his right forearm. ... The Astros traded RHP Andrew Robinson to Atlanta for a player to be named or cash considerations. ... The Angels improved to 28-29 on the Fourth of July, including 14-14 at home. ... Los Angeles won on a walk-off single by Aybar on July 4, 2013. ... The announced crowd of 43,557 was the Angels' fourth sellout of the season.