Dallas' unbeaten league run was ended at seven with a 3-0 loss to the Red Bulls in Harrison, New Jersey.
Bradley Wright-Phillips tapped in a Tyler Adams cross midway through the first half for the opening goal, before the game appeared to turn in the visitors' favor.
Red Bulls midfielder Daniel Royer was sent off for a studs-up challenge on Jacori Hayes just minutes after the goal.
But it was the 10-man hosts who struck next, Aaron Long volleying in a Sean Davis corner.
New York made it 3-0 shortly after the break, Kemar Lawrence's strike beating Jesse Gonzalez at the Dallas goalkeeper's near post.
Reto Ziegler was sent off late for Dallas after kicking out at Lawrence, closing out a miserable outing for his team.
The Red Bulls climbed into second in the Eastern Conference, while Dallas are second in the west.
A first-half brace from Mauro Manotas had Houston in control at Children's Mercy Park, but Sporting rallied.
Daniel Salloi pulled the first goal back in the 59th minute and the home side left it late to complete the comeback.
Diego Rubio equalized with five minutes remaining, and Houston were down to 10 men when Eric Alexander saw red.
Salloi – who set up Rubio's goal – then found Khiry Shelton with a cutback for the match-winner as Sporting moved three points clear atop the Western Conference.