Hunter Dozier hit a two-run homer in the bottom of the seventh inning, and the Kansas City Royals earned their third straight win over Houston, beating the Astros 3-2.