One policeman has been shot dead and two others wounded in central Paris, French police say, with their suspected attacker killed by security forces.
The Champs Elysees, where the shooting occurred, was sealed off. A lone gunman opened fire before being killed as he fled the scene, police say.
It happened as presidential candidates made their last pitches in a TV appearance before Sunday’s election.
An anti-terrorist investigation has been launched.
“On the face of it, the officers were deliberately targeted,” interior ministry spokesman Pierre-Henry Brandet said.
Islamist militancy is a major issue in the polls after recent mass attacks claimed by so-called Islamic State, with 238 people killed in jihadist attacks since 2015, according to data from AFP news agency.
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.
President Francois Hollande is due to speak after holding a crisis meeting with Prime Minister Bernard Cazeneuve and Interior minister Matthias Fekl.
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.
According to BFMTV news channel’s sources, the killer was known to the security services and had talked of wanting to kill police officers on the Telegram messaging service.
The whole of the Champs Elysees has been evacuated and police vehicles are lined up near a point half way up the avenue around the George V metro station, our correspondent says.
Shots were heard in or near the Marks & Spencer store, provoking a panicked rush away from the scene by tourists and passers-by.
Leading candidates quickly reacted to news of the attack:
- 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
- Marine Le Pen, of the far-right national Front, tweeted:”I feel for and stand by our security forces, who have been targeted again”
- The centre-right’s Francois Fillon said he was cancelling his campaign events on Friday and went on Twitter to pay “tribute to the security forces who give their lives to protect ours”
- 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.”