Business Secretary Vince Cable said "unscrupulous" employers had been abusing the flexibility offered by the contracts, under which workers do not know if they have work from one week to the next. Unions and campaign groups have been pressing for zero-hours contracts to be banned, but Mr Cable said they had a place in the labour market - offering working opportunities especially for students and older people. But he announced plans to ban exclusivity clauses, which tie people to one employer.
He said: "It has become clear that some unscrupulous employers abuse the flexibility that these contracts offer to the detriment of their workers. Today, we are legislating to clamp down on abuses to ensure people get a fair deal.
"We will also work with unions and business to develop a best practice code of conduct aimed at employers who wish to use zero-hours contracts."
The ban will benefit 125,000 zero-hours contract workers estimated to be tied to an exclusivity clause and will allow workers to look for additional work to boost their income, said the Business Department.
Mr Cable also announced a consultation on how to stop rogue employers evading the ban through measures such as offering one-hour fixed contracts.