Jo Cox, a 41-year-old mother-of-two from the opposition Labour Party, was shot in the face while laying on the ground by a lone attacker in the village of Birstall in northern England, according to witnesses quoted by local media.
Cafe owner Clarke Rothwell told the Press Association the gunman was shouting "put Britain first".
"He shouted it about two or three times. He said it before he shot her and after he shot her," he said.
Cox, who was also reportedly stabbed, is the first British MP to be killed in office since Ian Gow was killed by a car bomb planted by the Irish Republican Army in 1990.
"He shot this lady once and then he shot her again... leant over shot her once more in the face area," Rothwell told the BBC.
RELATED READING
Who was British Labour MP Jo Cox?
British MP Jo Cox has died in hospital after being shot in a daylight attack in her electorate in England's north.
Police said a 52-year-old man had been arrested and a firearm had been recovered from the scene.
"This was a localised incident, albeit one which has a wider impact," West Yorkshire Police and Crime Commissioner Mark Burns-Williamson told reporters.
Cox, a former aid worker, was only elected to parliament last year but had already made her name campaigning for the government to do more to aid Syrian refugees and for Britain to stay in the EU.
'Great, campaigning MP'
After the attack, pro and anti Brexit groups said they were suspending all campaigning for Thursday and Friday ahead of the June 23 EU membership referendum.
Alex Massie, writing in the Spectator magazine, blamed the "Leave" campaign for raising tensions, saying: "When you encourage rage you cannot then feign surprise when people become enraged".
"This is a day of infamy, a day in which we should all feel angry and ashamed," he wrote.
Prime Minister David Cameron cancelled a planned rally during a historic but controversial visit to Gibraltar as part of his campaign for Britain to remain in the EU.
"We've lost a great star. She was a great, campaigning MP with huge compassion, with a big heart," Cameron said in televised remarks.
The death of Jo Cox is a tragedy. She was a committed and caring MP. My thoughts are with her husband Brendan and her two young children. — David Cameron (@David_Cameron) June 16, 2016
On a visit to Copenhagen, US Secretary of State John Kerry said: "It is an assault on everybody who cares about and has faith in democracy," he added.
Over parliament, the British flag flew at half-mast.
At a vigil nearby, Cox's Labour colleagues gathered in silence for the MP.
"Hatred will never solve problems," party leader Jeremy Corbyn said at the commemoration.
Tearful mourners also gathered for an emotional vigil at St Peter's Church in Birstall, where a Union Jack flag was hung above the entrance.
Local residents laid flowers to near the scene of the attack as police forensic officers were seen examining a shoe and a handbag in a cordoned-off area.
The attacker was named by British media as local man Tommy Mair, with neighbours quoted as saying he was a "loner" who was into gardening.
In 2010 a Thomas Mair, then aged 46, was quoted in his local paper talking about his mental health issues, the Press Association reported.
