The spot, called "Christmas is for sharing", features the famous short truce between German and British soldiers in the First World War trenches on Christmas Day in 1914.
The spot was created by Abbott Mead Vickers BBDO, and was produced in partnership with the Royal British Legion.
It features a chocolate bar that will be sold in stores to raise money for the charity.
Although Sainsbury’s said the ad was created sensitively and respectfully, working with historians and the charity to get the tone right, it has divided public opinion.
While some say it is a beautiful tribute to the soldiers' memory, others argue it is a crass attempt to exploit the war for commercial reasons.
The ad was launched on Wednesday night in the break in Coronation Street.