Shoppers watched on in horror as two men fought in the aisle of Budgens in Broadway, in Didcot.
Police were called on Friday night after violence broke out in the shop at 9.38pm between two men in their 20s.
It is believed that the pair, who are not thought to be known to each other, had a disagreement outside the store moments earlier.
A man was then seen following the other into Budgens where he punched him, before going to a nearby kebab shop, police said.
The 21-year-old victim was taken to hospital in Oxford where he had stitches and surgery on a fractured arm.
Det Con Victoria Roberts said: “We are appealing to anyone who may have witnessed this incident to come forward.”
Anyone with information should call Det Con Roberts on 0854 8 505 505 or Crimestoppers anonymously on 0800 555111.
A 23-year-old man from Chalgrove was arrested in connection with the attack and has been bailed to appear at Abingdon Police station on October 20.
Comments: Our rules
We want our comments to be a lively and valuable part of our community - a place where readers can debate and engage with the most important local issues. The ability to comment on our stories is a privilege, not a right, however, and that privilege may be withdrawn if it is abused or misused.
Please report any comments that break our rules.
Read the rules here