Boris Johnson has pledged to scrap the fee for foreign health and social care workers to access the NHS "as soon as possible".
The move is a swift U-turn from Wednesday, when the prime minister defended the policy, saying it was "the right way forward" to boost NHS funds.
A Downing Street spokesperson said Mr Johnson changed his mind because "he had been a personal beneficiary of carers from abroad" when he was treated in intensive care for coronavirus.
The spokesperson explained: "The purpose of the NHS surcharge is to benefit the NHS, help to care for the sick and save lives.
"NHS and care workers from abroad who are granted visas are doing this already by the fantastic contribution which they make."
Advertisement
Hours earlier, Downing Street had insisted the prime minister was standing by the surcharge.
The change will apply to all NHS workers, including porters, cleaners, independent health workers and social care staff.
More from Politics
Originally, care workers, cleaners and porters had been left out of the scheme.
Currently the fee is £400 a year but that is set to rise to an annual sum of £624.
Labour leader Sir Keir Starmer, who pressed for the change at Prime Minister's Questions on Wednesday, said: "This is a victory for common decency and the right thing to do.
"We cannot clap our carers one day and then charge them to use our NHS the next."
:: Listen to the Daily podcast on Apple Podcasts, Google Podcasts, Spotify, Spreaker
Senior Tories had also called for change, with former vice-chairman Sir Roger Gale warning that refusing to waive the surcharge "would rightly be perceived as mean-spirited, doctrinaire and petty".
Former party chairman Lord Patten had called the policy "appalling" and "monstrous".