The contentious Citizenship (Amendment) Bill has been passed in the Rajya Sabha amid fierce debates in Parliament and violent protests in the Northeast.
Replying to a six-and-a-half-hour debate on the bill, Home Minister Amit Shah said the legislation seeks to provide citizenship to persecuted minorities in the three countries and not take away the citizenship of anyone.
He rejected the Opposition's charge that the bill was against Muslims and said they have nothing to fear.
Soon after the Bill was passed, Congress president Sonia Gandhi said the passage of the Bill marks a "dark day" in the constitutional history of India and a "victory of narrow-minded and bigoted forces" over the country's pluralism.
The Bill was passed with 125 votes in favour and 105 against it. Besides BJP, its allies such as JD-U and SAD, the legislation was supported by AIADMK, BJD, TDP and YSR-Congress.
Shiv Sena, who had supported the Bill in Lok Sabha, abstained from voting in Rajya Sabha.
On why persecuted minorities from countries such as Sri Lanka were not part of the legislation, Shah said Tamils from the island country had been given Indian citizenship in past and the present law is to tackle a specific problem
To repeated questions from the Opposition of Muslims being left out, he said Muslims from other countries have the right to apply for Indian citizenship as per existing rules. As many as 566 Muslims have been given citizenship, he said.
He attacked opposition the Congress saying statements by the party's leaders match those of Pakistani leaders on not just the citizenship bill but also on scrapping of Article 370.
Earlier the House rejected motions to send the bill to a select committee of the House with 124 members voting against it as compared to 99 in its favour.
The House also rejected several amendments moved by opposition members to the bill, most by voice vote.
The Bill was tabled in the Rajya Sabha by Home Minister Amit Shah on Wednesday after it was passed in Lok Sabha on Monday night with a majority of 311 votes against 80.
The Bill seeks to amend the Citizenship Act of 1955 to allow non-Muslim refugees from Bangladesh, Pakistan and Afghanistan to become Indian citizens if they leave their country facing religious persecution.
The opposition voted against the Bill in the parliament, saying it is discriminatory on the basis of religion and aimed against minorities. However, Shah has been asserting that the Bill is not anti-Muslims.
The Bill has sparked protests across India and especially in the North East where people are worried about foreigners settling in their lands and changing the indigenous demography and culture. The Centre has moved additional 5,000 troops to northeast and deployed army in Tripura in wake of protests against the Citizenship Amendment Bill.
Thousands of academics, intellectuals and activists have openly opposed the bill.