They have also approved a “national solidarity fund” and capital controls to prevent a bank run.
Cyprus needs to raise 5.8bn euros (£4.9bn; $7.5bn) to qualify for a 10bn-euro bailout.
MPs did not vote on key measures – involving levies on bank deposits. They rejected similar moves on Tuesday.
A decision on this is now expected over the weekend.
The “solidarity fund” would allow the pooling of state assets for an emergency bond issue, reports the Reuters news agency.
These include future gas revenues and some pension funds – an idea that German Chancellor Angela Merkel has strongly condemned.
Under the bank restructuring, Cyprus’ troubled lenders will be split into “good” and “bad” banks.
Before the series of much-delayed votes in an emergency session of parliament, the European Union, Germany and leading bankers all urged MPs to speedily pass the reforms.
Eurozone finance ministers have called a meeting on Sunday to discuss the Cyprus crisis.
The European Central Bank has given Cyprus until Monday to raise the bailout money, or it says it will cut off funds to the banks, meaning they would collapse, possibly pushing the country out of the eurozone.
The EU has postponed next week’s summit to discuss free trade with Japan, so European leaders can concentrate on trying to solve the Cyprus crisis.
Banks on the island have been closed since Monday and many businesses are only taking payment in cash.
There were protests outside parliament on Friday.
‘Playing with fire’
Before the parliamentary session began, government spokesman Christos Stylianides said the authorities were engaged in “hard negotiations with the troika”, made up of the EU, the European Central Bank and the International Monetary Fund, the AFP news agency reports.
Ms Merkel had warned Cyprus not to “exhaust the patience of its eurozone partners”, reports say.
Cypriot Finance Minister Michael Sarris has returned from Moscow, where he failed to garner Russian support for alternative funding methods.
He said a levy “of some sorts” remains “on the table” despite widespread fury among both ordinary savers and large-scale foreign investors, many of them Russian.
One of Ms Merkel’s allies in parliament, Volker Kauder, said nationalising pension funds would be “playing with fire”.
He said it could not happen because it would hurt what he described as “the pensioners, the small people”.
Correspondents say Germany is saying that Cyprus cannot expect any more help from Berlin, or Brussels, than what has already been offered.
Some help has been forthcoming, with the announcement that Greece’s Piraeus Bank would take over the local units of Cypriot banks. This would safeguard all the deposits of Greek citizens in Cypriot banks.
Mr Stylianides urged the country’s MPs to “take the big decisions” to prevent a financial meltdown.
“We must all assume our share of the responsibility,” he said in a televised statement.
Leading Cypriot bankers have urged parliament to accept a levy on bank deposits, as originally proposed under the bailout, but with smaller depositors exempted.
The plan, overwhelmingly rejected on Tuesday, would have made small savers pay a 6.75% levy, while larger investors would have paid 9.9%.
Bank of Cyprus chairman Andreas Artemis said: “It should be understood by everyone… especially from the 56 members of parliament… there should not be any further delay in the adoption of the eurogroup proposal to impose a levy on deposits more than 100,000 [euros] to save our banking system”.
If ordinary savers are exempt, then larger investors, many of them Russian, would have to pay an even higher rate, if a levy does remain part of the scheme.
The government fears this would prompt foreign investors to withdraw their money, destroying one of the island’s biggest industries.
State TV said a 15% levy on bank deposits of more than 100,000 euros was being discussed, AFP says.
Businesses in Cyprus have been insisting on payment in cash, rejecting card and cheque transactions.
“We have pressure from our suppliers who want only cash,” Demos Strouthos, manager of a restaurant in central Nicosia, told AFP news agency.
Our correspondent says he has never seen this much pressure being applied to a member state by the rest of the eurozone community in recent years.
Eurozone partners are saying Cyprus has got to change its banking system, over-reliant on foreign depositors, and the money it needs has to come out of that system, one way or another, he adds.
Earlier, talks in Moscow on possible new financial aid from Russia, a key investor in Cyprus, failed.
Russia’s Finance Minister Anton Siluanov, speaking after talks with his Mr Sarris, said Russian investors were not interested in Cyprus’ offshore gas reserves.
But Prime Minister Dmitry Medvedev later said Moscow had not “closed the door” on possible future assistance, however, Cypriot leaders must first reach agreement with their fellow EU members.