Elections originally scheduled for 8 January in Pakistan will now take place on 18 February, polling officials say.
Supporters of Benazir Bhutto blame the government over her death
The chief election commissioner said it would not be possible to hold the vote as scheduled following the assassination of Benazir Bhutto.
At least 47 people have been killed since Ms Bhutto's death last Thursday.
The main opposition parties say they will take part, despite having demanded the election not be delayed. They have accused officials of seeking to rig it.
The election is seen as a crucial move towards democratic rule under President Pervez Musharraf, an important ally in the US-led "war on terror" who stood down as army chief in November.
He is expected to deliver a televised address within the next few hours.
Chief Election Commissioner Qazi Muhammad Farooq said violent protests had directly affected the organisation of the poll.
He told a news conference in Islamabad that, after consulting its staff around the country, the election commission had decided the situation was "not conducive" to holding the vote on time.
Therefore, he said, he had decided it would take place after the holy month of Muharram, which begins next week.
A number of polling offices had been burnt down, particularly in Ms Bhutto's home province of Sindh, with the loss of many election materials, Mr Farooq said.
The riots had also delayed printing of ballot papers by four days and new lists of voters were required, he added.
"I would like to reassure all the political parties that these elections in every respect will be clean and transparent and I request that their leaders should support the new election date in the interests of national interests and take part in the elections," he told reporters.
Opposition parties said the delay was a desperate measure designed to avoid defeat for President Musharraf's ruling party.
Elections were less than two weeks away when Bhutto was killed
Ms Bhutto's Pakistan People's Party (PPP) called the reasons for postponing the vote "baseless excuses".
"Whatever reasons they give are such lame-duck excuses, because the electoral papers and lists were burnt in the districts but they have those lists in the central office," party spokeswoman Farzana Raja told Reuters news agency.
A spokesman for former Prime Minister Nawaz Sharif also condemned the postponement but confirmed his party would take part in the election.
The BBC's Chris Morris in Islamabad says the PPP wanted elections as soon as possible, in order to take advantage of what could be a big sympathy vote.
The ruling PML-Q party had said the 8 January vote should be delayed for several weeks, on the grounds that the vote would "lose credibility" if held under current conditions.
The authorities have accused pro-Taleban militant leader Baitullah Mehsud of being behind Benazir Bhutto's killing.
On Wednesday, the military said troops had killed about 25 militants in the tribal region of South Waziristan where Baitullah Mehsud is based.
Fighting began on Tuesday after four troops were taken hostage by the militants, the authorities say.
There is no independent confirmation of the military's account.