Far-right leader Marine Le Pen and centrist frontrunner Emmanuel Macron will move to the second and final round of the French presidential election in a historic shake-up of French politics.
With 90 percent of votes counted, the Interior Ministry said Macron, the head of En Marche!, had nearly 24 per cent, giving him a slight cushion over Le Pen's 22 percent.
The result represents a seismic shift in the French political landscape, with neither of the candidates from the mainstream left Socialists or the right-wing Republicans party - which have governed post-war France - making the run-off.
The tone was set in the first polls after polls closed. Ipos Mori put Macron on 23.7 per cent with Le Pen on 21.7 per cent.
For months, polls have suggested Le Pen cannot win in a straight run-off against Macron, with a gap between the two as big as 26 per cent as Macron is likely to sweep up votes from the left and right in an anti-Le Pen alliance.
French politicians on the left and right immediately urged voters to block Le Pen's path to power
Ex-Prime Minister Francois Fillon said he will vote for Macron and urged his supporters to do the same.
Socialist Benoit Hamon, who was far behind, also quickly conceded defeat but declared "the left is not dead" and urged supporters to back Macron.
The euro jumped 2 percent to more than $1.09 after the initial results were announced because Macron has vowed to reinforce France's commitments to the EU and euro.
A relative political novice, 39-year-old Macron founded his own political party, En Marche! (which translates roughly to "Onward!").
After leaving investment banking in 2014, he served as Socialist President François Hollande's economic minister until deciding to run for office last year.
For Le Pen, the election is the ultimate test of her efforts to bring the extreme-right National Front into the mainstream.
Le Pen took over the party's leadership from her father, Jean-Marie Le Pen, and has worked to clean up its image. Jean-Marie Le Pen made it through to the final two run-off in 2002 with 16.86% of the vote, and was eventually crushed by Jacques Chirac.
Le Pen and Macron represent the starkest possible choice between two diametrically opposed visions of the European Union's future and France's place in it.
With Le Pen wanting France to leave the EU, and Macron wanting even closer cooperation between the bloc's 28 member states, the projected outcome on Sunday means the presidential runoff would have undertones of a referendum on France's EU membership.
With a wink at his cheering, flag-waving supporters who yelled "We will win!" in his election day headquarters in Paris, Macron promised to be a president "who protects, who transforms and builds" if elected.
"You are the faces of French hope," he said. His wife, Brigitte, joined him on stage before his speech - the only couple among the leading candidates to do so Sunday night.
Le Pen, in a chest-thumping speech to cheering supporters, declared that she embodies "the great alternative" for French voters. She portrayed her duel with Macron as a battle between "patriots" and "wild deregulation" - warning of job losses overseas, mass immigration straining resources at home and "the free circulation of terrorists."
"The time has come to free the French people," she said at her election day headquarters in the northern French town of Henin-Beaumont, adding that nothing short of "the survival of France" will be at stake in the presidential runoff.
Her supporters burst into a rendition of the French national anthem, chanted "We will win!" and waved French flags and blue flags with "Marine President" on them.
The first-round vote whittled down the field of 11 candidates, and the top two will face off in a head-to-head contest on May 7.
In Paris, protesters angry at Le Pen's advance - some from anarchist and anti-fascist groups - scuffled with police. Officers fired tear gas to disperse the rowdy crowd. Two people were injured and police detained three people as demonstrators burned cars, danced around bonfires and dodged riot police. At a peaceful protest by around 300 people at the Place de la Republique some sang "No Marine and no Macron!" and "Now burn your voting cards."