The Democrats' vote held firm and that can block his conviction.
With tension in the chamber high and all present conscious that the trial was at a turning point, the senators were called to vote at the start of yesterday's session.
They voted by 56 to 44 first against a Democrat motion to dismiss the case against Mr Clinton, and then for a Republican motion on witnesses.
The vote, which went strictly along party-lines, spelt the end of the Senate's aspirations to preserve a cross-party consensus on the impeachment of the President.
There was only one defector, the maverick Democrat Russ Feingold, of Wisconsin, who voted with the Republicans - against dismissal and for witnesses.
Mr Feingold is one of the few senators not beholden to his party for funds, having regained his seat last November after setting unilateral limits on his campaign spending.
The Senate's decision to call witnesses infuriated the White House and disappointed Democrats. Three of the key individuals in the Lewinsky scandal now face renewed questioning under oath: Monica Lewinsky herself, the President's millionaire friend, Vernon Jordan, and his special adviser, Sidney Blumenthal.
The Senate also wants further evidence from Mr Clinton, which he is expected to refuse. Republicans hoped the witnesses could be heard over the weekend and the trial concluded late next week.
Precise arrangements for hearing witnesses had yet to be worked out, but they are not thought likely to appear in the Senate chamber, at least not initially. They are expected to be questioned by two senators on videotape, with transcripts provided to the Senate after the weekend.
The leader of the minority Senate Democrats, Tom Daschle, regretted the lack of agreement, saying that his party wanted "not to protect the President of the United States, but to protect the Constitution".
He insisted it had not been demonstrated that the charges against the President were impeachable, and he expressed the hope of a "procedural compromise" before today.
Reluctant witnesses, page 15Reuse content