The Senate voted 77-23 in favour of the resolution, without changing a word of it, meaning that it now goes directly to Mr Bush to be signed.
In the first official Iraqi reaction to the Senate vote, Deputy Prime Minister Tariq Aziz said his country was ready to "confront these plans of aggression... within the hour".
In an apparent softening of Moscow's position, Russian President Vladimir Putin said he did not rule out a deal on a new UN Security Council resolution on Iraqi disarmament.
"We are ready together with our partners to search for ways to ensure the work of [weapons] inspectors in Iraq. I do not rule out reaching a joint position including a UN resolution," Mr Putin said.
He had just emerged from talks with UK Prime Minister Tony Blair, who wants Moscow to go along with a resolution authorising the use of force against Iraq if it refuses to disarm.
Bipartisan vote
The Congress resolution text authorises Mr Bush to use force against Iraq in a manner "necessary and appropriate" to protect US national security and enforce UN resolutions.
However, in a concession to Democrats it encourages Mr Bush to pursue all diplomatic means before he decides on any attack.
The president welcomed the "strong bipartisan vote".
"The Congress has spoken clearly to the international community and the United Nations Security Council," he said.
"Saddam Hussein and his outlaw regime pose a grave threat to the region, the world and the United States. Inaction is not an option, disarmament is a must."
The BBC's Justin Webb in Washington says the president secured the vote with overwhelming support from Republicans and some cross-party backing from Democrats.
But an opponent of the resolution, Democratic Senator Robert Byrd, accused Congress of "handing the president unchecked authority".
'Iraq must comply'
The House of Representatives earlier voted 296-133 in favour of the resolution, after the president and his supporters spent several days lobbying Congress to support it.
Congress voting (for-against)
House of Representatives - 296-133
Democrats - 81-126
Republicans - 215-6
A majority of House Democrats (126 out of 208) voted against, although the party's leaders in both houses supported the motion.
"The issue is how to best protect America. And I believe this motion does that," said House Minority leader Richard Gephardt.
Senate Majority leader Tom Daschle (Democrat) said he was putting aside any doubts about the issue.
"I believe it is important for America to speak with one voice," he said. "It is neither a Democratic resolution nor a Republican resolution. It is now a statement of American resolve and values."
Our correspondent says some Democrats were genuinely convinced by the White House's arguments, while others simply felt unable to oppose the president on a matter of national security with mid-term elections less than a month away.
Retaliation fear
The resolution calls on Mr Bush to certify to Congress - either before a military strike or very shortly afterwards - that diplomatic and other peaceful means have failed.
It also stipulates that he reports to Congress every 60 days if he does take action.
The move comes amid a growing row over whether or not America's foreign intelligence agency, the CIA, genuinely believes that Iraqi leader Saddam Hussein poses an immediate threat.
A recently declassified letter from the CIA director, George Tenet, to a congressional committee appears to cast doubt on the immediacy of the threat from Saddam Hussein.