Republican John McCain claimed he has the momentum in the GOP's U.S. presidential nomination race, following his narrow victory in the South Carolina primary.

"I think we're obviously doing very well," McCain said to reporters at a news conference in Charleston, S.C., but admitted that the race is "still very competitive."

The Arizona senator defeated former Arkansas governor Mike Huckabee in Saturday's heated Republican primary, winning 33.2 per cent of the vote. Huckabee took 29.8 per cent.

This was McCain's second victory, having won the New Hampshire primary on Jan. 8. The winner of the South Carolina primary has been the Republican nominee in the U.S. presidential elections for the last 28 years.

Eight years ago, McCain was defeated in the state by George W. Bush, which spelled the end of his 2000 campaign.

The next primary will be held in Florida on Jan. 29, where fellow hopeful Rudy Giuliani will face his first contest. The former New York mayor avoided the early primaries.

In an appearance on ABC News' "This Week," Giuliani called Florida a microcosm for the country, pointing out that the state determined who the U.S. president would be in 2000.

He said that he is the strongest fiscal conservative, pointing to McCain's opposition to some of President George W. Bush's tax cuts.

McCain, who begins a week-long campaign in Florida, criticized Giuliani for staying out of the early contests and said, as the new front-runner, he anticipates attacks from his rival.

"If someone hasn't run a primary, I can understand why they would attack the frontrunner," McCain said.

On Saturday, former Massachusetts governor Mitt Romney easily won the GOP Nevada caucuses. McCain placed second to Romney in Michigan on Tuesday.

For the Democrats, Hillary Clinton defeated Barack Obama in Nevada on Saturday.

"This is one step on a long journey," Clinton told supporters at a rally in Las Vegas.

Although Clinton won the popular vote, Obama took more national convention delegates.

Former North Carolina senator John Edwards, who was a distant third, said he intends to stay in the race.

The next Democratic primary is set for Jan. 26 in South Carolina, where Edwards was born. He won the Democratic primary there in 2004.

The Florida and South Carolina primaries will be followed by contests in 22 states on Feb. 5, when a clear front-runner may emerge for the two parties.

With files from The Associated Press