Hezbollah to end Beirut seizure
The army revoked two key government measures that had led to four days of street fighting between the two sides, leaving at least 37 people dead.
Hezbollah had seized large parts of the city, but said it was now handing control back to the army.
But it has vowed to continue civil disobedience until its demands are met.
A Hezbollah statement said: "The Lebanese opposition will end all armed presence in Beirut so that the capital will be in the hands of the army."
The fighting was sparked by a government move to shut down Hezbollah's telecoms network and the removal of the chief of security at Beirut airport for alleged Hezbollah sympathies.
Those decisions were referred to the army which shelved them, and called on all parties to return to the status quo before the fighting.
The BBC's Jim Muir, in Beirut, says the army's proposals offer a face-saving compromise that allows the government to back down.
He says the streets are expected to be calmer and the international airport is likely to reopen.
Earlier, Prime Minister Fouad Siniora called on the army to restore law and order, saying the country would not fall to Hezbollah after four days of street battles which saw the Shia movement drive supporters of the government out of western Beirut.