The House passed the bill 253-168 largely along party lines, dismissing warnings from Democrats that courts would strike down the plan for failing to meet judicial standards.
Republicans who control both chambers want to send the bill to Bush by the weekend, when lawmakers head out to campaign for November elections that will determine control of Congress. The Senate is expected to pass the bill on Thursday.
The bill sets up procedures to try foreign terrorism suspects at the US prison camp at Guantanamo Bay. The Supreme Court struck down Bush's original plan, saying it violated US and international standards.
Bush was to go Capitol Hill for a pre-election meeting with Republican senators hours before the Senate was expected to pass the bill. He had faced a rebellion in his party over his plan to revive the terrorism trials and was forced to compromise with dissident Republican senators.
Dennis Hastert, the House speaker and an Illinois Republican, accused Democrats who had opposed the bill of supporting "more rights for terrorists. So the same terrorists who plan to harm innocent Americans would be coddled if we follow the Democratic plan".
Bill Frist, the Senate majority leader and a Tennessee Republican, said: "By formally establishing terrorist tribunals, the bill provides a critical tool in fighting the war on terror and it provides a measure of justice to the victims of 9/11."
But human rights groups and many Democrats said the deal gave Bush too much room to allow harsh interrogations and to deprive detainees of legal rights.
Ellen Tauscher, a Californian Democrat, said that agreeing to "such an ambiguous compromise would allow the president to define torture when and how he sees fit".
Louise Slaughter, a New York Democrat, said the bill sends a signal that "America's leaders are willing to abandon our values... in favour of thuggish tactics they hope might make them safer for a while".
Democrats predicted that the courts would find the bill unconstitional because it deprived detainees held without charges of the right to file legal challenges to their imprisonment.
The bill also expands the definition of "enemy combatants", who can be held indefinitely without charges, to include those who knowingly support terrorist groups with arms, money and other activities.
Backers of the bill said that provision would choke off supplies to terrorist groups, but critics said it was too broad and could subject many more people to indefinite detention.