The president said "we would not be sensible and would lack common sense" to go ahead after unions called a day of pension protests during the visit.
The trip to Paris and Bordeaux had been due to begin on Sunday.
But both cities were caught up in violence on Thursday, some of the worst since demonstrations began in January.
Buckingham Palace said the decision to postpone the three-day visit by Charles III and Camilla, the Queen Consort, was due to the "situation in France".
"Their Majesties greatly look forward to the opportunity to visit France as soon as dates can be found," the statement added.
President Macron said that from the moment on Thursday night when unions announced a 10th national day of action for Tuesday, two days into the state visit, he felt it would be inappropriate for the King and Camilla to travel.
"As we have considerable friendship, respect and esteem for His Majesty and the Queen Consort and the British people, I took the initiative this morning to call [the King] and explain the situation... Common sense and friendship led us to suggest a postponement."
The UK government added the decision had been "taken with the consent of all parties". Mr Macron said France had proposed moving the trip to early summer, "when things calm down again".
The decision is a significant loss of face for France and for President Macron. This was supposed to have been a showcase for France, introducing the new monarch to the best of French life and cementing a newly awakened friendship.
The president's opponents on the left and right reacted fast.
Eric Ciotti of the Republicans said the cancellation brought "shame on our country" while Jean-Luc Mélenchon on the far left was delighted the "meeting of kings at Versailles" had been broken up, adding that "the English" knew that France's interior minister was "pathetic on security".
The protests had made the trip impossible. Several French cities saw violence on the sidelines of Thursday's largely peaceful demonstrations that attracted more than a million people.
The entrance to the town hall in Bordeaux was set alight. In Paris, tear gas was fired and Interior Minister Gérald Darmanin said 903 fires were lit, in a city where refuse has been left uncollected since 6 March.
Hundreds of police officers were hurt across France, but protesters were injured by stun grenades and the Council of Europe said there was no justification for "excessive force" by authorities.
For much of Friday morning, French officials had sought to reassure the public that the state visit, from 26 to 29 March, would go ahead and that security was in place. Some UK journalists had already travelled to Paris to cover the event.
This was a hugely important trip for the King: a first state visit, and to one of the UK's closest and oldest allies. The King and Camilla were due to ride along the Champs-Elysées in the heart of Paris and have a banquet at Versailles with President Macron.
Camilla was expected to open an art exhibition at one of the main Paris attractions, the Musée d'Orsay. They were then expected to head to Bordeaux.
But every step of the visit was at risk of being targeted by protests and eventually it was cancelled. Even the people who roll out the red carpets were planning strike action.
Interior Minister Mr Darmanin said earlier on Friday that there were "no known threats" to the King. Bordeaux Mayor Pierre Hurmic said the trip to his city had been adapted so it "can go ahead under the best security, so as not to expose the King to the slightest difficulty".
However, facing the prospect of showing the King through rubbish and graffiti-strewn streets, with every public appearance smothered in security, and every movement threatened by strikes, the French president made the obvious choice.
It may have been a joint decision with the UK government, but he was the one under pressure.
The trip to Bordeaux, originally intended to focus on organic vineyards, went up in flames. The town hall, its front door set alight on Thursday, was due to be part of the visit.
Domestically, the image would have played badly for the president. Dining with a king in Versailles would have been jarringly inappropriate and could have played rather too directly into the hands of his detractors.
A TV interview that President Macron gave on the eve of Thursday's national action appeared to galvanise protesters, when he described the government's reforms as an economic necessity, saying he was prepared to accept the resulting unpopularity.
His government decided on Monday to force through the reforms, which raise the pension age from 62 to 64 and extend contributions by workers to 43 years.
As the president and prime minister realised they would struggle to pass the law in the National Assembly, they resorted to a constitutional power to bypass a vote.
"I listened to Macron yesterday and it was as if someone was spitting in our face," said Adèle, a 19-year-old law student in Nanterre. "For this pension reform, there is another way and if he doesn't do that, it's because he's not listening to the people. There's a clear lack of democracy," she told the BBC.
While the postponement will be highly embarrassing for President Macron, it will also be disappointing for King Charles.
State visits are made on the advice of the government. All the background briefing had been that this was an important diplomatic statement about rebuilding relationships with European neighbours.
The King and Camilla were due to travel from France to Germany on Wednesday. Charles's first state visit will instead begin in Berlin.