ANAHEIM, Calif. -- Although Dallas Keuchel pitched into the ninth inning, the Houston ace was frustrated by his inability to finish off the Los Angeles Angels.
His talented Astros teammates still got the job done in extra innings.
Carlos Correa singled home Jose Altuve in the 10th, and the Astros blew a four-run lead in the ninth before rallying for a 7-6 victory over the Angels on Friday night.
Keuchel remained unbeaten while pitching seven-hit ball, but the AL Pitcher of the Month was chased by three straight singles that weren't hit terribly hard. Kole Calhoun eventually capped the small-ball rally with a tying RBI single off Ken Giles (1-1) with two out.
"It was really frustrating," Keuchel said after missing out on his second complete game in three starts. "I wish they would have gotten some of those soft hits earlier in the game. It would have been easier on me, but that's really poor by me, and it's just really frustrating."
No matter for the AL leaders: Altuve singled, stole second and scored on Correa's line drive off Bud Norris (0-1) in the Astros' fifth victory in six games.
"He was able to steal the base, and I was able to come through with the hit," Correa said. "That tells you a lot about this team. The depth on this team is unique."
Brian McCann hit a three-run homer in the seventh, and Josh Reddick had an early homer and an RBI single as the AL-leading Astros (20-10) improved to 16-5 against AL West rivals.
Chris Devenski pitched the 10th for his second save.
Albert Pujols hit his 595th career homer and Martin Maldonado also went deep for the Angels, who have lost four of six.
Jesse Chavez pitched four-hit ball into the seventh inning for the Angels, but left with two runners on. Jose Alvarez promptly surrendered McCann's second homer in three days.
"We're never down, (and) we're never out," Chavez said. "That's just the mentality we take. ... The boys came back, battled back for me and picked me up, and that's all we can do."
Houston matched the best 30-game start in club history set in 1973. The Astros also stayed right behind Washington (20-9) for the best record in baseball.
After Keuchel left, Mike Trout extended his hitting streak to a career-best 17 games with an RBI single off Giles, who blew a save for the first time in eight chances this season.
The Angels added runs on Luis Valbuena's groundout and Andrelton Simmons' single before Calhoun tied it.
Pujols connected for a 431-foot shot to center in the second. It was his 55th career regular-season homer against the Astros, who followed him to the AL one year after the slugger made the move from St. Louis.
The Angels recalled reliever Keynan Middleton from Triple-A Salt Lake for the first time before the game, and the 23-year-old right-hander made his big league debut by allowing two hits and a run in the ninth.
Middleton is the 21st pitcher and 36th player used by the Angels already this season, tops in the majors in both categories.
Astros: RHP Collin McHugh played catch at 45 feet at Angel Stadium for the first time since he was shut down with an elbow problem one month ago. He is nowhere close to returning to Houston's rotation from his posterior impingement, manager A.J. Hinch said. "You've got to continue to dangle the next step in front of him," he added. "We're in the infancy stage of a very long process to deal with it."
Angels: RHP Andrew Bailey had his second bullpen session in his return from a right shoulder injury. ... RHP Cam Bedrosian played catch at about 90 feet in his return from a groin injury.
Astros: Lance McCullers Jr. (2-1, 4.08 ERA) makes his first start since nearly coming to blows with Mike Napoli when he threw behind the Texas slugger Monday. McCullers had 10 strikeouts in that impressive no-decision.
Angels: Longtime reliever JC Ramirez (3-2, 4.23 ERA) makes his fifth start of the season in the injury-plagued rotation. After a rocky start to his new assignment, he has given up just five earned runs in his last three starts combined.