One policeman has been shot dead and two others wounded in central Paris, French police say, with their suspected attacker killed by security forces.
A lone gunman opened fire before being killed as he fled the scene, police say. The Champs-Elysees was sealed off.
President Francois Hollande said that he was convinced the attack was “terrorist-related”.
So-called Islamic State (IS) said that one of its “fighters” had carried out the attack.
Islamist militancy is a major issue in the polls after recent mass attacks claimed by IS, with 238 people killed in jihadist attacks in France since 2015, according to data from AFP news agency.
Several candidates in Sunday’s presidential election have ended their campaigns early as a mark of respect, with the centre-right’s François Fillon calling on others to halt theirs too.
“On the face of it, the officers were deliberately targeted,” Interior Ministry spokesman Pierre-Henry Brandet said.
Mr Hollande said after crisis talks with his prime minister and interior minister that the security forces had the full support of the nation and a national tribute would be paid to the fallen policeman.
He said he would hold a meeting of his security cabinet on Friday morning.
Because of its worldwide renown and its large number of visitors, the Champs-Elysees has long been seen as a potential target, the BBC’s Hugh Schofield reports from the French capital.
A car pulled up alongside a police bus just before 21:00 (19:00 GMT) and a man got out, opening fire with an automatic weapon at the bus, Mr Brandet said.
After killing an officer, he attempted to run away while shooting at other officers, two of whom he injured, the spokesman added.
He was then shot dead by security forces.
Paris prosecutor Francois Molins later said that “the attacker’s identity is known and has been verified”.
“I won’t reveal it, because investigations and raids are already under way, in particular to establish whether there is any evidence or not of complicity (in this attack).”
Meanwhile, IS identified the attacker as Abu-Yusuf al-Baljiki, in a statement carried by its Amaq news outlet.
The whole of the Champs-Elysees was evacuated and police vehicles were lined up near a point half way up the avenue around the George V metro station, our correspondent says.
Shots were heard near the Marks & Spencer store, provoking a panicked rush away from the scene by tourists and passers-by.
Witnesses interviewed by AFP recounted scenes of panic as people ran for cover and sought shelter.
“We had to hide our customers in the basement,” said Choukri Chouanine, manager of a restaurant near the site of the shooting.
Thousands of troops and police guard tourist areas of the French capital. In February, a man armed with a machete in each hand was wounded after attacking soldiers on patrol at the Louvre Museum.
The following month, a 39-year-old man was killed at Orly airport after attacking a soldier.
Campaigns called off
The 11 candidates standing in Sunday’s closely fought election were engaged in a final joint TV appearance to make their pitches as the attack happened.
Marine Le Pen, of the far-right national Front, tweeted:”I feel for and stand by our security forces, who have been targeted again.”
Mr Fillon went on Twitter to pay “tribute to the security forces who give their lives to protect ours”.
Both Ms Le Pen and Mr Fillon later announced they were cancelling campaign events scheduled for Friday, the last day of canvassing for votes.
Independent centrist Emmanuel Macron said during his TV appearance that it was a president’s “first duty to protect” and he expressed his “solidarity” with the police.
Jean-Luc Mélenchon, standing for the far left, tweeted: “I strongly feel for the policemen killed and wounded and their families. Terrorist attacks will never go unpunished, accomplices never forgotten.”
At the White House, US President Donald Trump said people had to be strong and vigilant.
“Our condolences from our country to the people of France,” he said. “It looks like another terrorist attack and… what can you say? It just never ends.”