Houston (3-4-4) snapped a four-game winless streak with its first road victory of the year.
Jozy Altidore scored for Toronto (3-5-0).
The game drew a BMO Field-record crowd of 30,226, although there were some empty seats in the new upper tier in the East Stand. An MLSE spokesman said not all the tickets were put on sale because of an issue with the railing.
Garcia opened the scoring in the 44th minute, and Bruin made it 2-0 in the 53rd. Altidore scored in the 77th.