The bill passed on a vote of 60 to 52.
The private Palestinian land would be seized by the government and held until there is a final resolution of the decades-long Israel-Palestinian conflict. Palestinian landowners could apply to the state for annual rents or be given another parcel.
A member of Parliament in Netanyahu's own Likud Party, Benny Begin, son of the former Prime Minister Menachem Begin, speaking before the vote, labelled it "the robbery bill".
Another Likud legislator, former Justice Minister Dan Meridor, condemned the bill as "evil and dangerous".
Meridor, a lawyer, warned the Israeli Parliament that the West Bank remains under a "belligerent occupation," 50 years after Israel won the territory from Jordan in the 1967 Arab-Israeli war. Palestinians who live in the territory are not Israeli citizens. They don't vote in Israeli elections. They live under a military authority.
If Israel's Parliament legislates for the Palestinians - rather than control them by military rule - then Palestinians would have the right to become citizens and vote in Israel, Meridor argued.
"Don't cross a line we've never crossed before," Meridor pleaded with his fellow legislators in a newspaper column. "No government in Israel has applied its sovereignty to the West Bank."
The Palestinian Authority said the measure was "an illegal land grab". Former Palestinian peace negotiator Saeb Erekat compared the Israelis to "looters".
Last week, Trump's spokesman Sean Spicer told Israel in a statement that new settlement construction in the West Bank "may not be helpful" in achieving a Middle East peace - a mild rebuke compared with those by the Obama Administration. Trump and Netanyahu are scheduled to meet in Washington next week.
The settlement legalisation measure was pushed forward by Naftali Bennett, the Education Minister and leader of the Jewish Home party, who opposes granting the Palestinians a state and instead wants to annex to Israel the 60 per cent of the West Bank where the Jewish settlements are located.
Bennett, a religious nationalist, said the bill seeks to "normalise" life for the settlers and allow them to remain in homes that the state has encouraged them to build, while providing roads, water, power and protection by the army.
After the bill passed, Bennett tweeted just one word: "Revolution".
There are about 400,000 Jews in the West Bank and an additional 200,000 in East Jerusalem living in settlements that most of the world considers illegal. Israel disputes this.
The Israeli anti-occupation group, Peace Now, estimated that more than 3800 homes on 53 illegal outposts could eventually be legalised by the bill, which they claimed "would turn Israeli citizens into thieves".
A pro-settler advocacy organisation, Regavim, said the number of protected homes is half that.
Reporters in Parliament said the most recent revised version of the bill would safeguard homes in 16 settlements but that the justice minister could add to this list.