The win tied Houston (8-5-7, 31 points) with the Chicago Fire for fourth place in the Eastern Conference and ended Kansas City's unbeaten streak at three games.
Carr put Houston ahead 2-1 in the 79th minute after feeding a pass to Brad Davis outside the left box and hitting Davis' cross inside the near post from inside the 6-yard box.
Carr opened the scoring in the 25th minute after taking a pass from Will Bruin in the right box and hitting a right-footed shot inside the near post from eight yards out.
Kei Kamara scored in the 42nd minute on a penalty kick to tie the game at 1-1, freezing Houston goalkeeper Tally Hall and hitting it inside the near post. The goal ended Houston's shutout streak at 356 minutes and was the first goal Houston had allowed in four games.
Kansas City (11-6-3, 36 points) earned the penalty in the 41st minute after Houston's Andre Hainault pulled down Kansas City's Jacob Peterson from behind in the box.
Kansas City played at a man disadvantage for the entire second half after Peterson Joseph was given a red card by referee Mark Kadlecik after he tackled Carr from behind in first half stoppage.
Houston nearly took a 2-1 lead in the 65th minute off Davis' free kick when Kansas City's Seth Sinovic headed the ball up and toward the goal, but Sporting goalkeeper Jimmy Nielsen batted the ball off the crossbar.
Sinovic left the game in the 79th minute with a sprained left ankle and was replaced by Chance Myers.