Bennet, who was appointed last year to the Senate and had White House backing, emerged victorious after being among several incumbents in Congress to face serious challenges within their own parties.
He now faces the winner of the Republican Senate primary, either former Lt. Gov. Jane Norton or Weld County prosecutor Ken Buck.
With 72 percent of the projected vote counted, Bennet led Romanoff 52 to 48 percent.
Among other criticisms, Romanoff, a former state House speaker, had blasted Bennet and other ruling Democrats in Congress for being too timid on climate change, health care and financial regulation.
Bennet spent the final days of his primary campaign playing up his own political inexperience and describing himself as an outsider in the Senate. Bennet wore jeans and a plaid shirt on a cross-state tour of workplaces and called Washington "that infernal place."
Top Democrats were already working to smooth tensions after the divisive primary. Democratic Party Chairman Tim Kaine planned to visit Colorado Thursday for what the party was calling a unity rally with both Bennet and Romanoff.
Romanoff urged party unity in a concession speech Tuesday, saying, "We must win this seat."
Bennet had the backing of President Barack Obama, who recorded phone messages for Bennet and joined a conference call with the senator last week to tell Democrats that Bennet "the person that I want alongside me." Former President Bill Clinton had endorsed Romanoff.
The Bennet win cheered party activists who seemed relieved their incumbent hung on.
"Now we can focus on the Republican candidates. This has been a distraction," said Bennet supporter Bob Kihm, 55.
Both GOP Senate candidates did their best to show an anti-establishment streak, too.
Buck blasted Norton as "the chosen candidate" and criticized her for having the backing of most Republican senators. Norton countered that Buck's no outsider, having spent his entire career in government service, including as a former assistant U.S. attorney.
The Republican contest became personal at times, with Norton questioning in campaign ads whether Buck was "man enough" to take her on. A few weeks later, Buck backpedaled after telling a voter to choose him "because I do not wear high heels."
Buck ran into trouble for referring to so-called "birthers" questioning Obama's citizenship as "dumb---es." But the frank comment also endeared him to many of his tea party supporters.
Bennet had a wide fundraising lead over Romanoff, who mortgaged his house in the campaign's final days. But Romanoff tried to turn his disadvantage into a selling point, making a virtue of his refusal to take money from political action committees.
Romanoff was attacked for a vicious campaign ad titled "Greed" in which he accused Bennet of costing thousands of jobs in a corporate turnaround. The deal, Bennet insisted, actually created jobs.
For complete results, click here.
If you would like to comment on our political coverage or join a political discussion, click here:
(Copyright 2010 by The Associated Press. All Rights Reserved.)