The win was the second in three games for the Dynamo (10-7-6), while Seattle (10-8-4) saw its four-game unbeaten streak end in U.S. national team captain Clint Dempsey's his first start for the Sounders.
Barnes gave the Dynamo a 1-0 lead in the 17th minute when Bruin kept the ball alive before it reached the end line then fed it back to Barnes, who sent a shot from 14 yards out in the left box that found the upper right corner.
Five minutes later, Barnes made it 2-0 with a blast from 30 yards out in the middle of the field that went just inside the far post, giving him his first multi-goal game.
Barnes said the Dynamo came out of the blocks flying, and it was important for Houston to get off to a good start at home.
"When you get the first goal in any game, you look to get the second goal to try to kill their vibe, knock the wind out of their sails," Barnes said. "We thought that if we did that, it would give them a tough hill to try to climb."
Houston coach Dominic Kinnear said the first 30 minutes of the game were probably the best 30 minutes the Dynamo have played all year.
"We looked excellent," Kinnear said. "Giles scored a good goal and followed it up with a great goal. We were excellent on both sides of the ball. If we lost it, we hunted it down. I think the two goals we scored, it came from winning the ball and playing it forward. We were very aggressive with our overall play on both sides of the ball. Giles found good little gaps in the midfields."
Shalrie Joseph cut the lead in half in the 65th minute, heading Marc Burch's free kick inside the near post from inside the goalkeeper's box.
Dempsey took his first shot in the first minute when he sent one wide left from the right box. He had a header saved in the 25th minute and another shot in the 35th minute, a low liner from the middle of the box that goalkeeper Tally Hall easily corralled. Dempsey sent one from the upper box wide in the 81st minute.
Dempsey, who is from Nacogdoches, Texas, had family and friends in attendance. He said it was good to play a full 90 minutes.
"This was the first 90 minutes I've had in a long time," Dempsey said. "I thought we created enough chances tonight that we should have scored more goals. I had some good looks, I should have put one away. But we had chances, so I'm not frustrated with that aspect."
Bruin scored in the 74th minute to extend Houston's lead to 3-1. Warren Creavalle's shot from the middle of the box hit off the cross bar and bounced to Brad Davis, who fed Bruin 8 yards out. He turned and sent one into the middle of the net.
Lamar Neagle missed a chance to get Seattle within one in the 80th minute when his shot from the right box hit the far post but stayed on the end line and Houston goalkeeper Tally Hall was able to bat it out.
Seattle head coach Siegfried Schmid said his team gave up some early goals, but they fought and battled back, and if they would have finished their opportunities, the result could have been different.
"I thought our body language early in the game wasn't good," Schmid said. "We handed them opportunities early. The first goal was a little bit of a mistake on our part. Second goal that guy hits a great goal. There was nothing you could do. After that I thought we were in as much of the game as they were. It's easily a game that could've been 3-3 or 4-4 based on the chances we had if we finish our chances."