ANAHEIM, Calif. -- The Houston Astros saw a completely different Jered Weaver than the one they faced 6 1/2 weeks ago at Minute Maid Park, when they hit four home runs off him.
The Los Angeles Angels' ace pitched a two-hitter Wednesday night in the rematch, posting his first complete game in nearly two years, and Albert Pujols hit a go-ahead home run in the sixth to lead the Halos to a 2-1 victory.
"Those guys roughed me up a little bit at their place, so I wanted to come in here and have a good game and keep us in it as much as possible," Weaver said. "Their guy was throwing a good game, too. So it was nice to come out on top."
Weaver (5-3) threw 94 pitches while going the distance for the 12th time in 241 career starts and first time since Aug. 6, 2012, when he beat the Athletics 4-0 with a four-hitter at Oakland.
"It was definitely exciting to run out there for the ninth and hear the fans," Weaver said. "That's what you pitch for -- to go deep into games and finish it off."
Weaver struck out five, walked one and retired 17 of his last 19 batters -- including 10 straight after giving up a leadoff homer to George Springer in the fourth. The three-time All-Star is 5-1 with a 1.70 ERA over his last seven starts.
Weaver hit Springer with a pitch with one out in the ninth, then picked him off after getting a sign from manager Mike Scioscia in the dugout. He got the final out by retiring Dexter Fowler on a popup to third base.
"In that situation, I'm not really worried about baserunners. But Scioscia called a great pickoff there," Weaver said. "Usually when I look over, I can see a little bit of the runner. But when I looked over before that pick, I couldn't see him. So I figured he was off the bag pretty good. I just made a good quick move, and that definitely took a lot of pressure off."
Weaver threw a called third strike to Jason Castro in the fourth for his 1,281st career strikeout, overtaking Mike Witt on the Angels' career list behind Nolan Ryan and Chuck Finley.
"I didn't even know that I was coming up on any milestone like that at all," Weaver said. "I think I threw strikeouts out the door maybe two years ago. I mean, it's great when you're young and you just want to go out there and try to strike everybody out. But then you realize that getting early outs is just as important and it helps you get deeper in games."
Collin McHugh (2-3) lost his third straight decision over four starts despite allowing just two runs and four hits in seven innings. The right-hander struck out seven and walked two. Erick Aybar drove in the Angels' other run with a third-inning single.
"You know coming into it that Weaver's arguably one of if not the best pitchers in this league," McHugh said. "So you know that you're not going to be able to give up a lot and that it's going to be a dogfight."
Pujols who homered twice on Sunday against Tampa Bay ace David Price, drove a 2-1 pitch into the top tier of the double-decker bullpen in left field for his 13th homer this season and 505th of his career to surpass Eddie Murray for 25th place on the career list.
On hand to see it was Air Force staff sergeant Tom Sherrill of Pomona, California, who came up with Pujols' 500th home run ball on April 22 at Nationals Park in Washington.
"What I did two or three weeks ago, I put that in the past. I've flipped the page," Pujols said. "My goal is to try to concentrate on what's in front of me and help this organization win. I don't get caught up too much in numbers."
NOTES: The jockey and trainer for Triple Crown hopeful California Chrome -- Victor Espinoza and Art Sherman -- each threw out a ceremonial first pitch. ... Angels CF Mike Trout missed his first game of the season because of a sore left hamstring, but was available to pinch-hit if necessary. He expects to be back in the lineup Friday night for the start of a three-game series with Kansas City. Collin Cowgill started in CF for the third time this season and robbed Jose Altuve of a hit with a diving catch of his shallow flyball leading off the game. Altuve was 0 for 4, ending his career-best 12-game hitting streak. ...... Pujols had 43 home runs against the Astros, tying Aramis Ramirez for the most among active players.