Brad Davis also scored for Houston (11-6-8), which moved into a tie with Chicago for third place in the Eastern Conference. The Dynamo also extended their home unbeaten streak to 20 games, dating back to a 2-0 loss against Columbus on June 18, 2011.
Cole Grossman and Eddie Gaven scored for the Crew (8-8-6).
Gaven put the Crew on top 2-1 in the 58th minute, taking a forward pass from Federico Higuain and converting a short breakaway.
Davis nearly tied it in the 67th minute, but his shot from 25 yards out in the middle was batted over the crossbar by Greunebaum.
Moffatt tied it 15 minutes later, taking a Columbus clear attempt, settling it and firing a left-footed shot from above the half-circle that Crew goalkeeper Andy Greunebaum initially caught before it popped out of his hands and over his head into the goal.
Davis put Houston ahead 1-0 in the 19th minute, taking a pass in the center of the field from Oscar Boniek Garcia, settling it and hitting a shot from the upper center box just inside the near post and under the cross bar.
Houston missed two chances to extend the lead in the 30th minute, with Garcia chipping a pass into the box for Bobby Boswell, who had gotten behind the Columbus defense, but Boswell's shot from the right box was tipped over the crossbar by Greunebaum.
Off the ensuing corner kick, Will Bruin's shot from in the box was cleared by Justin Meram on the end line.
Grossman tied it in the 33rd, receiving a pass in the middle of the upper box from Dilly Duka, and shooting it inside the near post, past a diving Tally Hall.
Gaven had a shot from the left box in the 42nd minute batted out by Hall.