Retail sales in April jumped 2.3% from the previous month and by 4% compared with April last year.
The Office for National Statistics (ONS) said sales rose thanks to Easter falling later this year.
The year-on-year jump was far higher than expected and was helped by warmer weather, according to retailers.
Sterling jumped on news of the April rebound, which followed ONS data in March showing that sales suffered their biggest fall in seven years.
“The retail sales figure itself was the best since the start of 2016 and will go some way to allay the fears of a slowdown in consumer spending following last month’s sharp drop,” said David Cheetham, chief markets analyst at XTB.
The value of sterling rose on the news, hitting $1.3, its highest level since 29 September.