Emmanuel Macron beat the far right to retain the presidency in April but, less than two months on, it is the left that is threatening his hold on power.
French voters are deciding if he can keep control of the National Assembly.
If the president loses his outright majority, he could struggle to push through reforms.
Far-left Jean-Luc Mélenchon’s left-green alliance finished neck and neck with the centrist Macron coalition in the first round a week ago.
They call themselves Nupes, which stands for New Ecological and Social Popular Union, and the polls suggest they could stop the president winning the 289 seats he needs. The president’s alliance, Ensemble, portrays them as a “marriage of convenience” of Communists, Socialists, far-left Mélenchonists and Greens.
Voting in most of France ended at 18:00 (16:00 GMT), although the biggest cities continue voting until 20:00, when the first projections are announced. Turnout at 17:00 was low at 38.11%, but higher than in 2017.
Nupes have galvanised voters with a promise to fight spiralling prices, bring down the retirement age and tackle climate change. Green leaders and many green voters back them, accusing President Macron of doing little in the past five years.
Sunday’s second round is almost entirely made up of run-off duels between two candidates, and almost half involve the two big alliances. Several ministers in the Macron government are battling to keep their seats and hold on to their jobs, and two of the toughest fights feature Europe Minister Clément Beaune and Green Transition Minister Amélie de Montchalin.
An early casualty for the government came on the Caribbean island of Guadeloupe, where a secretary of state, Justine Benin, lost her seat and will have to resign.
Without an outright majority of 289 seats, Mr Macron would need the support of other parties to push through his big-ticket reforms, such as raising the retirement age, cutting taxes and reforming benefits. Pollsters suggest Ensemble will win 255-305 seats and Nupes 140-200.
“They didn’t think the left and Greens could get together – it would be chaos and catastrophe,” Nupes spokesman Ian Brossat told a rally at the end of the campaign. “But the chaos today is economic, with food prices going up. We’ve got 10 million people in poverty.”
During his fight for the presidency, Mr Macron rallied voters across the spectrum by presenting his main rival Marine Le Pen as an extremist.
With mainstream parties joining the Mélenchon alliance it has become harder to do that. President Macron has appealed to voters to give him a solid majority in the “superior interest of the nation”, while Russia’s war rages at the gates of Europe.
Former Marxist Jean-Luc Mélenchon has long wanted France to leave Nato but says that is now not a priority. However, he remains controversial, tweeting that “the police kill” and promising to naturalise Wikileaks founder Julian Assange as French if he wins the election.
Mr Macron’s recently appointed prime minister, Elisabeth Borne, has painted Mr Mélenchon’s policies as dangerous because he is “ambiguous on republican values”.
First-time voter Clara said she had backed Mr Macron against the far right in April, but this time preferred the left-green alliance.
Christine believes handing the president an outright majority is not good for democracy and believes having another party in government results in healthy debate.
Europe Minister Clément Beaune is fighting to save his political career in one of the Paris seats, against an experienced LGBT rights lawyer. Caroline Mécary.
Both candidates visited the Aligre market near the Gare de Lyon several times in the run-up to Sunday’s vote, says market vendor Ichem. “People can’t afford much now; they buy less than before,” he observes.
Visiting the market, Grégoire said he backed the president because he did not want to return to the days of “cohabitation”, when president and government came from different parties: “Yes it used to work before but they weren’t good years.”
In another of the early results, 21-year-old Tematai Le Gayic became the youngest ever French MP to be elected, defeating a former tourism minister in French Polynesia.
One of the most keenly watched battles is between hotel chambermaid Rachel Keke and a former sports minister, Roxana Maracineanu. Ms Keke, 48, went into politics after securing better pay and conditions for her colleagues.