ANAHEIM, Calif. — Dallas Keuchel didn't allow a debatable scoring decision to ruin his dominant night.

Keuchel took a no-hitter into the seventh and finished with 7 2/3 innings of two-hit ball in the Houston Astros' 3-1 victory over the Los Angeles Angels on Friday night.

Justin Upton broke up Keuchel's bid with two outs in the seventh when his line drive went off the glove of leaping Astros shortstop Marwin Gonzalez. The Angel Stadium official scorer awarded a hit instead of an error on what would have been a fine defensive play if Gonzalez had held on.

Houston manager AJ Hinch disagreed with the decision, believing Gonzalez should have been charged with an E.

So did a penitent Gonzalez.

"In my personal opinion, that should be an error," Gonzalez said. "I don't know why they got a hit. That changed the game a little bit for (Keuchel). ... I thought I caught it. It was moving, but I should have caught it."

Keuchel (8-8) shrugged it off and improved to 5-0 in his last seven appearances for the Astros (65-35), who are off to the second-best start through 100 games in franchise history.

"(Upton) hit the ball hard, man," Keuchel said. "I probably shouldn't have started him off with a first-pitch fastball. It's just the way it goes. You need to be very fortunate in games like those. I thought I was at times. But he hit the ball hard. Probably get on base more times than not."

Gonzalez nearly made the play, but the 6-foot-1 shortstop couldn't quite hang on. Houston's regular shortstop, injured Carlos Correa, is 6-foot-4.

Ian Kinsler got a clean leadoff single in the eighth and scored on Jabari Blash's sacrifice fly, chasing Keuchel.

Josh Reddick had an RBI triple for Houston. Only last season's World Series champions got off to a better start than these Astros, who are 15 games ahead of the injury-plagued Angels (49-49) in the AL West.

KEUCHEL'S FORM

Keuchel retired the Angels' first nine batters before walking David Fletcher to open the fourth. The heavily bearded lefty then retired the Angels' next 11 batters before Upton's hit with solid defensive help, getting within seven outs of the first no-hitter by a left-handed pitcher in the history of the Astros, who have 11 no-hitters.

Yuli Gurriel made an impressive diving catch on Upton's liner to first base to end the fourth inning, and Kyle Tucker plucked Andrelton Simmons' sinking liner right before it hit the left-field grass leading off the seventh.

"This was certainly a night where he was in total control of everything," Hinch said. "I thought his fastball was exceptional. I thought his use of the changeup was great. He arguably never should have given up a run, maybe not even a hit. There was a lot of good in Dallas."

EARLY RUNS

The Astros piled up five singles and scored two runs off Tyler Skaggs (7-6) in the first two innings before Reddick's drive down the right-field line scored Evan Gattis in the third for a 3-0 lead.

Skaggs settled into six innings of six-hit ball in yet another strong start, but the left-hander took just his second loss since May.

HALO OUTS

Mike Trout went 0 for 3 and Shohei Ohtani struck out three times against Keuchel.

Hector Rondon pitched the ninth for his ninth save. He got a generous call to strike out Trout, who went 0 for 4 for only the second time since June 8.

"In the batter's box, it was a lot of what we saw versus left-handed pitchers before the break," said Angels manager Mike Scioscia, whose club began the night batting .224 against lefties. "We've got to get better."

SHOHEI THROWS

Before Ohtani went 0 for 3 as the Angels' designated hitter, he played catch in the outfield for the second straight day since getting approval to begin a throwing program. The two-way rookie took six weeks off from throwing to rest the sprained ligament in his pitching elbow after getting treatment with platelet-rich plasma and stem cells. The Angels hope he'll pitch again this season.

TRAINER'S ROOM

Astros: Correa won't return from his lower back injury until after this five-game road trip. He has been out since June 25, and hasn't resumed baseball activities while making "slow but steady progress," Hinch said.

Angels: Albert Pujols is scheduled to return to the lineup Monday, Scioscia said. The 38-year-old slugger went on the disabled list July 13 with left knee inflammation, one day after hitting his 629th and 630th career homers.

UP NEXT

Astros: Justin Verlander (9-5, 2.29 ERA) went winless in his final six starts before the All-Star break, but has already beaten the Angels twice this year, allowing two runs in 16 innings.

Angels: Nick Tropeano (3-4, 4.83 ERA) returns from a 31-game injury absence with right shoulder inflammation. Although he has been effective when healthy this season, he has never beaten the Astros in his career, and hasn't won at Angel Stadium since May 18, 2016.

___

More AP baseball: www.apnews.com/tags/MLBbaseball