Lawmakers voted by 326 to 290 in favour of backing the legislation, after more than 13 hours of debate, which will now go forward for further scrutiny by MPs.
The bill is aimed at repealing the 1972 law through which Britain joined the bloc, transferring in bulk around 12,000 existing EU regulations onto the British statute books.
It is the next step in implementing last year’s historic referendum vote to leave the EU, after Prime Minister Theresa May formally notified Brussels of Britain’s withdrawal in March.
The premier described the outcome as a “historic decision” which “gives certainty and clarity ahead of our withdrawal from the European Union”.
“Although there is more to do, this decision means we can move on with negotiations with solid foundations and we continue to encourage MPs from all parts of the UK to work together in support of this vital piece of legislation,” May said in a statement.
The main opposition Labour party had voiced its objection to the bill, arguing that its provisions to smooth the transfer of EU laws represent an unacceptable expansion of executive power.
Many EU regulations may need adjusting as they are transferred, and the bill proposes the broad use of existing “Henry VIII powers” that allow ministers to amend legislation without full parliamentary scrutiny.
Labour lawmaker Chris Bryant said such powers would lead to “a dangerous spiral of autocracy”.
“It pretends to bring back power to this country, but it actually represents the biggest peace time power grab by the executive over the legislature, by the government over parliament, in 100 years,” he told parliament.
A total of seven Labour MPs however rebelled against the party line and backed the bill.