Obama, the Illinois senator, began immediately, saying Clinton has changed her positions on the North American Free Trade Agreement, torture policies and the Iraq war. Leadership, he said, does not mean "changing positions whenever it's politically convenient."
Edwards, the former North Carolina senator, was even sharper at times, saying Clinton "defends a broken system that's corrupt in Washington, D.C." He stood by his earlier claim that she has engaged in "doubletalk."
Clinton, standing between the two men, largely shrugged off the remarks and defended her positions. She has been the focus of Republican candidates' "conversations and consternation," she said, because she is leading in the polls.
She said she has specific plans on Social Security, diplomacy and health care. "I have been standing against the Republicans, George Bush and Dick Cheney," she said, "and I will continue to do so, and I think Democrats know that."
It was the Democrats' first debate in a month, and during that time Clinton has solidified her front-runner position, gaining in polls, taking the lead in fundraising and dominating the agenda. The Iowa caucuses are scheduled for Jan. 3, and the New Hampshire primary could be even earlier.
Clinton defended her Senate vote in favor of designating Iran's Revolutionary Guard as a terrorist group. Obama, Edwards and others have said President Bush could interpret the measure as congressional approval for a military attack.
Edwards caustically challenged Clinton's claim that she stands up to the Bush administration. "So the way to do that is to vote yes on a resolution that looks like it was written literally by the neocons?" he said.
"In my view, rushing to war - we should not be doing that - but we shouldn't be doing nothing," Clinton said. "And that means we should not let them acquire nuclear weapons, and the best way to prevent that is a full court press on the diplomatic front."
Clinton also was the main focus during a discussion of the Iraq war. Again, Edwards leveled the toughest charges against the New York senator.
"If you believe that combat missions should be continued in Iraq" without a timetable for withdrawal, Edwards said, "then Senator Clinton is your candidate." Edwards vowed to have all combat troops out of Iraq "in my first year in office."
Clinton replied forcefully, saying "I stand for ending the war in Iraq, bringing our troops home." She added, however, that "it is going to take time," and some troops must remain to fight al Qaeda in Iraq.
"I don't know how you pursue al Qaeda without engaging them in combat," she said.
Edwards, drawing a link between Iraq and Iran, pressed on. "What I worry about is, if Bush invades Iran six months from now, I mean, are we going to hear: 'If only I had known then what I know now?"' He was alluding to comments Clinton has made about her 2002 vote to authorize military action against Saddam Hussein.
"Edwards and Obama achieved at least some of what they wanted to do coming into this debate and that was to exploit some of Clinton's vulnerabilities with the Democratic base, especially on Iran and Iraq," said CBSNews.com Senior Political Editor Vaughn Ververs. "Clinton defended herself well, but the criticism may play well with voters already uneasy with her past support of the war in Iraq." (Read more debate analysis from Vaughn Ververs in Horserace.)