The House of Representatives voted 398-4 in favour of trade, diplomatic and travel sanctions on Syria.
The vote came after the White House lifted its earlier objection to the legislation, which also calls on Damascus to end its occupation of Lebanon.
Correspondents say the vote comes at a time when relations between Damascus and Washington have hit a new low.
The bill gives the White House a range of options for sanctioning Syria, including:
Restricting overfly rights for Syrian aircraft inside US airspace
Before it becomes law, the bill must be approved by the Senate and signed by the president.
This is expected in the coming weeks.
The White House said sanctions would continue until Syria stopped sponsoring terrorism and halted programmes for weapons of mass destruction, according to Reuters news agency.
"Syria is a government at war with the values of the civilised world and a violent threat to free nations and free men everywhere," House majority leader Tom DeLay said after the vote.
"We will send a very clear message to the President [Bashar] al-Assad... The United States will not tolerate terrorism, its perpetrators or its sponsors," Mr DeLay said.
The Bush administration has accused Damascus of doing little to help the United States in its combating terrorism.
It has also charged Damascus with allowing groups to pass into Iraq to attack US soldiers.
Syria, which denies the charges, has little trade with the United States, but the sanctions could ban US investment there and restrict exports.
Mr Assad has described members of President Bush's government as "fanatics" and "warmongers", according to the AFP news agency.
He told a summit meeting of leaders from around the Islamic world at Putrajaya, Malaysia, that the United States "violate sovereignty, impose economic sanctions, invade countries culturally."