Under the plan, the government will sell subsidised wheat and rice to 67 percent of its population of 1.2 billion. India is home to a quarter of the world's hungry poor, according to United Nations data, despite being one of the biggest food producers and experiencing years of rapid economic growth.
The vote broke a long stalemate in parliament, potentially clearing the way for several reforms aimed at spurring the flagging economy which the government hopes to pass in an extended session that ends on Sept. 6
Faced with an unruly parliament, Prime Minister Manmohan Singh's coalition government last month resorted to an executive order to implement the programme, which his Congress party hopes will help win it a third consecutive term in power. The next election is due by May.
The Rajya Sabha upper house must now approve the decree before it becomes law.
In a foretaste of the battle for votes to come, the main opposition party says the welfare scheme, which expands an existing cheap food programme covering 218 million people, is still too narrow to tackle widespread malnutrition among India's millions of poor.
Lawmakers passed the bill only after nearly nine hours of debate and the inclusion of amendments that government sources could lead to an additional requirement of about 3 million tonnes of grain.
Singh said last year that the child malnutrition in India, where almost 50 percent of children are underweight, was a "national shame". Despite that, some critics have dubbed the new plan a waste of public money at a time when growth has been steadily slowing.
The main opposition Bharatiya Janata party (BJP), which already runs a successful food handout programme in Chhattisgarh state, voted for the bill. It had earlier criticised it for making food more expensive and failing to provide enough nutrition.
The BJP's likely candidate for prime minister, Narendra Modi, said in a letter to Singh on Aug. 7 that the scheme would effectively reduce allowances for very poor families and make them spend more on food, because entitlements would be calculated per individual rather than per family.
He said families below the poverty line would now have to spend an extra 85 rupees ($1.3) per month to keep eating the same amount of rice and wheat.
The expanded subsidy is a pet project of Congress leader Sonia Gandhi, who led the party to victory in the last two elections on the back of populist programmes such as a rural jobs plan and a $12.5 billion farmer loan waiver passed just before the 2009 general election.
In a dramatic development, Gandhi, widely seen as the country's most powerful politician, had to be led out of parliament during the debate. She was admitted to a New Delhi hospital after complaining of chest pain, television channels said.