HOUSTON -- Dallas Keuchel's perfect performance in Houston this year has the Astros one win away from the American League Championship Series.

Keuchel remained undefeated at Minute Maid Park after throwing seven gutsy innings in a 4-2 win over the Kansas City Royals yesterday as the Astros took a 2-1 lead in their Division Series.

The Astros can wrap up the best-of-five series with a win over the defending AL champions in Game 4 today. "You get to this type of scenario and you don't capitalize, you get what happens today," said Royals manager Ned Yost, who chose Keuchel to start for the AL in July's All-Star Game.

The Astros' remarkable run comes two years after they lost a franchise-worst 111 games in a third straight 100-loss season.

"I think that success is a lot more sweet when you kind of go through hardship like we did the first couple years that I was up here," Keuchel said. "But it's really not a confidence that has grown. It's been here the whole time . . . Just now that we're getting to the playoffs and on a national stage . . . it's a shock to a lot of people."

advertisement | advertise on newsday

Keuchel, who shut down the Yankees in the AL wild-card game, worked out of jam after jam, allowing five hits and one run with seven strikeouts after going 15-0 at home this season, a modern major-league record. He has a 1.45 ERA at Minute Maid Park in 19 starts this year.

"The ball in Dallas Keuchel's hand brings an awful lot of confidence to a lot of people. Including me," Astros manager A.J. Hinch said. "And he came up with some excellent pitches."

Luke Gregerson gave up a leadoff homer to Alex Gordon in the ninth before finishing off the Astros' first playoff game in Houston in 10 years with a four-out save.

Jason Castro drove in two runs with a single in the fifth that made it 2-1. Carlos Gomez (rib muscle strain) started for the first time in the series and had an RBI single in the sixth. Chris Carter hit a solo homer in the seventh against Danny Duffy to push the lead to 4-1.