Yordan Alvarez homered twice and drove in six runs in the first inning and Christian Walker added a first-inning bomb of his own as the Houston Astros fended off a Kansas City Royals comeback for a narrow 10-8 win.