Jack McGlynn had one goal and one assist. Daniel Gazdag, Julian Carranza and Quinn Sullivan each added one goal for the Union, who extended their unbeaten streak to six straight and their winning streak to five in a row.
- MLS on ESPN+: Stream LIVE games, replays (U.S. only)
- Soccer on ESPN+: FC Daily | Futbol Americas
- Don't have ESPN? Get instant access
Alejandro Bedoya had a career-best three assists for the Union (12-2-9, 45 points), who remain the lone undefeated team at home with a 7-0-5 record.
It was the 10th shutout of the season for goalkeeper Andre Blake.
The struggling Dynamo (7-12-4, 25 points) lost their second consecutive game.
Dynamo goalkeeper Steve Clark appeared to injure his shoulder following a nasty collision in the box with Bedoya in the 13th minute. After writhing in a pain for a couple of minutes, Clark remained in the game.
Gazdag connected in the 23rd minute for his 11th goal of the season. Gazdag has now scored in four consecutive games.
Clark, who looked as if he was injured again in the 20th minute, was eventually replaced by backup Michael Nelson in the 26th minute.
In the 33rd minute, Houston's Fafa Picault broke free and scored an apparent goal, but the offsides flag went up late and it was nullified.
McGlynn ripped a free kick into the goal -- his first as a professional -- from about 25 yards out in the 42nd minute for a 2-0 advantage.
Then in the first of five minutes of stoppage time, Uhre got behind the defenders and tapped in his seventh goal for a commanding 3-0 Union lead.
Uhre's eighth goal in the 48th minute propelled the Union to a 4-0 advantage.
When Carranza scored in the 55th minute, Philadelphia held an insurmountable five-goal lead.
Picault hit a strong shot from the center of the box in the 76th minute, but it sailed wide left.
Sullivan scored in the 89th minute for a 6-0 lead.