French presidential frontrunner Emmanuel Macron vowed Wednesday not to "yield a centimetre" to Marine Le Pen after being booed and heckled with chants backing his far-right rival during a chaotic visit to an under-threat factory in the nation's rustbelt.
"We have two projects for the country going head to head against one another," said Macron as he visited a cafe in the northern village of Bully-les-Mines.
"So I shall not cede a centimetre of space, not a second's respite, not an ounce of energy," to Le Pen, Macron insisted.
Earlier, Le Pen had stolen some of the pro-European candidate's thunder by visiting workers hours ahead of him at the same factory in his northern home town of Amiens.
Macron was booed and heckled as he made a chaotic visit to the under-threat factory in the nation's depressed northern rustbelt where Le Pen topped first round voting.
Some in the crowd shouted "President Marine!" and booed as the 39-year-old former banker arrived outside the Whirlpool appliance factory in Amiens, where Le Pen had already made an unannounced stop.
US multinational Whirlpool runs the facility which is threatened with outsourcing to Poland.
"Of course there is anger in this country, there is anxiety. Responsibility must be taken, that's why I'm here," pro-business former economy minister Macron told workers.
Macron tried to counter accusations that he had made a complacent start to campaigning for the presidential runoff on May 7 after finishing ahead of Le Pen, 48, in Sunday's first round.
While Macron had arranged to meet Whirlpool workers' union representatives without actually visiting the plant, Le Pen turned up unannounced outside the plant and posed for selfies with workers and attacked her rival.
"Everyone knows what side Emmanuel Macron is on -- he is on the side of the corporations," Le Pen said. "I am on the workers' side, here in the car park, not in restaurants in Amiens."
As news broke of the Le Pen visit, Macron announced he would also meet employees, telling them the only reason that the anti-EU Le Pen had come was "because I'm here".
He also retorted on Twitter that she had spent "10 minutes with her supporters in a car park in front of the cameras" whereas he had spent "an hour and a half with union representatives and no media."
A Wednesday poll suggested Macron will defeat Le Pen by a margin of 21 points, but as the day's events showed, the far-right candidate is a vastly more experienced political campaigner.
And after the shocks of Britain's vote to leave the European Union and Donald Trump's unlikely ascent to the White House, analysts say a late surge by Le Pen is still possible.
Macron's visit north came as a Harris Interactive poll showed 52 percent of the French believe he botched the start of campaigning for the run-off.
After winning Sunday's contest with 24.1 percent to Le Pen's 21.3 percent, Macron gave an exuberant victory speech followed by a high-profile celebration at a Paris restaurant, drawing criticism from some quarters.
Socialist Party boss Jean-Christophe Cambadelis told French radio: "He was smug. He wrongly thought that it was a done deal. It's not a done deal."
President Francois Hollande appeared on Tuesday to admonish his former economy minister for not taking the fight to Le Pen immediately after the first round.
"I will defend the progressive camp to the end," Macron retorted.
- 'Not a single vote' -
Since securing her berth in the run-off, Le Pen has turbo-charged her campaign with a string of appearances and statements, leaving her opponent on the back foot.
In contrast, her opponent convened strategy meetings about June's legislative elections that will determine the shape of a future Macron government.
Le Pen will hold a rally in the Riviera city of Nice on Thursday, a bastion of France's right that was targeted by a jihadist-inspired truck attack that killed 86 people last July.
Le Pen has called for France to take back control of its borders from the European Union and deport all foreigners on a terror watchlist, accusing Macron of being soft on security.
A key factor in the race is which candidate the supporters of Communist-backed Jean-Luc Melenchon, who finished in fourth place with 19.58 percent on Sunday, will now back.
Melenchon faced criticism after he failed to urge his backers to get behind Macron as part of the so-called "republican front", the decades-old French tactic of closing ranks to block the far-right.
But Melenchon's spokesman Alexis Corbiere told French TV channel LCI that "for us the National Front is a danger" and urged viewers to not give "a single vote to the National Front."
Meanwhile in Paris, thousands of French police demonstrated in the Champs Elysees, where one of their number was killed by a jihadist six days earlier, to urge both candidates to "hear their anger" over difficult working conditions.