Retail sales rose by 0.3% between June and July, driven by high levels of discounting on the high streets and promotions on petrol, the Office for National Statistics has said.
The unexpected news comes after pound fell against the dollar overnight, with markets anticipating a fall of 0.1% in sales.
The ONS also revised up figures for June, to a rise of 0.8% from 0.1%.