Boris Johnson has rejected calls to scrap the fees overseas health workers have to pay to use the NHS.
The health immigration surcharge on non-EU migrants is £400 per year and set to rise to £624 in October.
Labour, the SNP and the Royal College of Nursing say health workers should be exempt from the “unfair” charge.
The prime minister said he understood the “difficulties” NHS staff faced but the country could not afford to scrap the charges in the current climate.
The government plans to extend the fees to apply to EU, Iceland, Liechtenstein and Norway nationals moving to the UK after the Brexit transition period ends in December.
Speaking at Prime Minister’s Questions, Labour Leader Sir Keir Starmer said: “Every Thursday we go out and clap for our carers. Many of them are risking their lives for the sake of all of us.
“Does the prime minister think it’s right that care workers coming from abroad and working on our frontline should have to pay a surcharge of hundreds – sometimes thousands of pounds – to use the NHS themselves?”
He said a care worker on the National Living Wage would have to work for 70 hours “to pay off the fee”.
The SNP’s leader at Westminster, Ian Blackford, urged the PM to scrap the “cruel” charge, accusing the PM of “giving with one hand and raking it in with the other”.
Mr Johnson said he had “thought a great deal” about this issue, given his own experience of being cared for by nurses from overseas when he was in intensive care with coronavirus.
He told Sir Keir: “I do accept and understand the difficulties faced by our amazing NHS staff and, like him, I’ve been a personal beneficiary of carers who have come from abroad and, frankly, saved my life.
“On the other hand we must look at the realities – this is a great national service, it’s a national institution, it needs funding and those contributions actually help us to raise about £900m, and it’s very difficult in the current circumstances to find alternative sources.
“So with great respect to the point [Sir Keir] makes, I do think that is the right way forward.”
Labour is planning to seek an amendment to the Immigration Bill to exempt NHS staff, including cleaners and care professionals, from the surcharge.
The party is hoping to recruit support from other opposition parties and Conservative MPs.
A Labour source said the £900m figure quoted by the PM was for the surcharge as a whole and the government had not given a breakdown of the cost of scrapping the surcharge on different sectors, such as health.
Dame Donna Kinnair, chief executive and general secretary of the Royal College of Nursing, said: “The immigration health surcharge is a grossly unfair financial burden on our international workforce and we’re pleased to see the issue being taken seriously by politicians.
“The government must drop this charge as a matter of urgency.”
Sir Keir Starmer also challenged Mr Johnson on the “the continued delay in routine testing in our care homes” at Prime Minister’s Questions.
The prime minister said the government was “confident” it could increase testing across the country, including in care homes.
He said the UK would have a test, track and trace operation in place by 1 June, with 25,000 trackers.
Commons Speaker Sir Lindsay Hoyle threatened to throw Health Secretary Matt Hancock out of the chamber for heckling Sir Keir as he quizzed the PM.