The Libyan government claimed on Wednesday that it would defeat opposition forces in Benghazi within 48 hours and put an end to the most serious challenge to Muammar Gaddafi's rule in more than 40 years.

But as the leader's son Saif al-Islam boasted of imminent victory, rebels said they had inflicted heavy losses on government forces fighting to regain control of Misrata, a port which is the last big anti-Gaddafi stronghold in western Libya.

Opposition sources said they had destroyed 16 tanks and captured 20 members of an elite unit commanded by Khamis, another son of Gaddafi, after an armoured force attacked Misrata from the south and west. Artillery and rockets were also deployed.

Libyan officials, however, were speaking with mounting confidence about the outcome, insisting that foreign media had exaggerated the extent of the violence and portraying the rebels as influenced by al-Qaida – a claim for which there is little evidence.

Saif al-Islam poured scorn on talks at the UN and elsewhere to impose a no-fly zone over Libya. "The military operations are finished," he told France's Euronews channel. "In 48 hours everything will be over. Our forces are close to Benghazi. Whatever decision is taken, it will be too late."

Last night the Libyan army told Benghazi's residents to leave rebel-held locations in the city and weapons storage areas. Muammar Gaddafi told Lebanon's LBC TV he did not expect a battle in Benghazi, and that Libyan people have been helping get rid of "al-Qaida" elements there.

The government, meanwhile, was maximising efforts to display popular support for Gaddafi. Fireworks and celebratory gunfire illuminated the night sky over Tripoli after Tuesday's fall of Ajdabiya, a strategic town that commands the approaches to Benghazi.

State media also reported that two tribes which had previously declared for the opposition had switched back and pledged their loyalty to Gaddafi.

Libyan TV showed delegations of cheering regime loyalists expressing their support for the leader in his headquarters at the heavily guarded Bab al-Aziziya barracks in central Tripoli and excoriating traitors and conspiracies at home and abroad. "We would never forsake the pure blood with which our grandfathers liberated the land and we would never betray or abandon it," Gaddafi told them.

Senior officials said that Gaddafi's offer of an amnesty for those who had taken up arms would be applied "without exception", and repeated the call for a "national dialogue" on reform that would allow opponents of the regime to express their wishes peacefully. "We want to avoid bloodshed," said one well-placed source in Tripoli. "It is time for the rebels to lay down their arms." But it is hard to see the opposition taking up the offer after previously insisting that Gaddafi step down and rejecting all talks with the regime.

Reports of disappearances and abductions of opposition sympathisers in the capital and elsewhere will also make it difficult for the Benghazi rebels to accept official promises that there will be no retribution.

Last night Britain and the US appeared to be at odds over the imposition of a no-fly zone over Libya as Britain joined forces with France and Lebanon to press for a fresh UN security council resolution.

Hillary Clinton, the US secretary of state, played down the prospects of a no-fly zone when she declared that there were "other ways" to help the opposition as she warned against unilateral action.

The intervention by Clinton, in an interview on BBC Radio 4's PM programme, came shortly after William Hague said that Britain was prepared to impose a no-fly zone without the authority of the UN.

Even if French-led diplomatic efforts fail to secure a no-fly zone, widespread hostility to Gaddafi is now unlikely to fade. Nor will UN security council sanctions and referrals to the international criminal court simply fade away.

Accounts of the fighting in Misrata could not be verified because the Libyan authorities have barred journalists from the city., the country's third largest. A doctor at Misrata hospital told Reuters that 11 people had been killed and 20 wounded in the fighting.