MPs voted by 324 to 268, majority 56, to give the legislation a second reading, but former Liberal Democrat minister Sarah Teather rebelled and warned attacks on the poor could lead to the "fragmentation" of society.
Labour branded the plan a "strivers' tax" as 68% of households caught by the below inflation rise in benefits were in work.
But Work and Pensions Secretary Iain Duncan Smith accused Labour of tying working families into the benefits system and "buying votes" by increasing handouts.
He said: "They think that helping people is about trapping more and more people in benefits. What is really interesting is that under the tax credit system, nine out of ten families with children were eligible for tax credits.
"This went in some cases up to over £70,000 in earnings. What a ridiculous nonsense they have created."
The Welfare Benefits Up-rating Bill limits rises in most working-age benefits to 1% in 2014/15 and 2015/2016 instead of linking them to inflation. Similar measures for 2013/14 will be introduced separately.
The plan, announced by George Osborne in his Autumn Statement last year, is aimed at slashing £5 billion from the welfare bill over the next five years.
A Labour bid to block the Bill and insist on a "compulsory jobs guarantee" was defeated by 328 votes to 262, majority 66.
Mr Duncan Smith said that since the beginning of the recession incomes for those in work have risen by about 10% but for those on benefits they have risen by about 20%.
He said: "What we are trying to do over the next few years is get that back to a fair settlement and then eventually it will go back on to inflation."
But shadow work and pensions secretary Liam Byrne claimed the Bill was a "hit and run on working families" who were paying the price for the Chancellor's economic failure.
"Millionaires will have £107,000 more from next year to help them heat the swimming pool," he said.
"It's not Britain's millionaires who are picking up the tab, it is Britain's working families. This Bill is a strivers' tax, pure and simple."
Labour former foreign secretary David Miliband described the Bill as "rancid" and claimed it was motivated by party politics.
"It reeks of the politics of dividing lines that the current Government spent so much time denouncing when they were in opposition in the dog days of the Brown administration," he said.
"The enemy within is not the unemployed, the enemy within is unemployment. I don't want to live in a society where we pretend that we can enjoy the good life while our neighbours lose their life chances."
Ms Teather, who lost her job as children and families minister in September last year, hit out at the way the arguments over the below-inflation rise had been characterised as a division between "shirkers and strivers".
In the Autumn Statement Mr Osborne said the measure was about "being fair to the person who leaves home every morning to go out to work and sees their neighbour still asleep, living a life on benefits".
But Ms Teather said: "A fissure already exists between the working and non-working poor. Hammering on that faultline with the language of shirkers and strivers will have long-term impacts on public attitudes, on attitudes of one neighbour against another."
Lib Dem colleague David Ward (Bradford E) said it was possible some Tory MPs saw the politics of the situation as "a good opportunity .. to attack the unemployed".
He added: "It is not fair. I will not support it."
But Tory Kris Hopkins (Keighley) warned of people being "dependent" on the state.
He added: "I'm very concerned... where the unemployed, those dependent, those uneducated, those without skills, those with a limited amount of opportunities to offer young people are the families that are growing in my constituency.
"That is one of the tragedies for towns like mine. We have got to break that cycle - it cannot be right that it pays to actually live on the state."
Four Lib Dem MPs rebelled on second reading. They were Ms Teather, Mr Ward, Julian Huppert (Cambridge) and John Leech (Manchester Withington).
Former party leader Charles Kennedy and St Ives MP Andrew George voted in both lobbies, the traditional way of registering an abstention.
The 40 Lib Dems who voted for the measure were: Danny Alexander (Inverness, Nairn, Badenoch & Strathspey), Sir Alan Beith (Berwick-upon-Tweed), Gordon Birtwistle (Burnley), Tom Brake (Carshalton & Wallington), Jeremy Browne (Taunton Deane), Malcolm Bruce (Gordon), Paul Burstow (Sutton & Cheam), Lorely Burt (Solihull), Vincent Cable (Twickenham), Sir Menzies Campbell (Fife North East), Alistair Carmichael (Orkney & Shetland), Nick Clegg (Sheffield Hallam), Michael Crockart (Edinburgh West), Edward Davey (Kingston & Surbiton), Tim Farron (Westmorland & Lonsdale), Don Foster (Bath), Stephen Gilbert (St Austell & Newquay), Duncan Hames (Chippenham), Sir Nick Harvey (Devon North), David Heath (Somerton & Frome), John Hemming (Birmingham Yardley), Simon Hughes (Bermondsey & Old Southwark), Norman Lamb (Norfolk North), David Laws (Yeovil), Stephen Lloyd (Eastbourne), Michael Moore (Berwickshire, Roxburgh & Selkirk), Greg Mulholland (Leeds North West), Tessa Munt (Wells), John Pugh (Southport), Dan Rogerson (Cornwall North), Sir Bob Russell (Colchester), Sir Robert Smith (Aberdeenshire West & Kincardine), Andrew Stunell (Hazel Grove), Ian Swales (Redcar), Jo Swinson (Dunbartonshire East), John Thurso (Caithness, Sutherland & Easter Ross), Steve Webb (Thornbury & Yate), Roger Williams (Brecon & Radnorshire), Stephen Williams (Bristol West) and Simon Wright (Norwich South).
Ten Lib Dems who did not vote were: Norman Baker (Lewes), Annette Brooke (Dorset Mid & Poole North), Lynne Featherstone (Hornsey & Wood Green), Mike Hancock (Portsmouth South), Martin Horwood (Cheltenham), Chris Huhne (Eastleigh), Alan Reid (Argyll & Bute), Adrian Sanders (Torbay), Mark Williams (Ceredigion), Jenny Willott (Cardiff Central).
Lib Dem Government whip Mark Hunter acted as a teller.