Attackers have entered the largest military hospital in Kabul and a gun battle is under way, the Afghan defence ministry says, according to BBC.
An employee told the BBC he heard an explosion at the Sardar Daud hospital's main gate followed by gunfire.
One doctor said he saw a gunman wearing a medic's coat pull out a concealed assault rifle and open fire, killing two people.
The 400-bed hospital is near the US embassy.
"I saw a suicide attacker wearing a white coat open fire on me, I jumped from the stairs, then he opened fire on one of my colleagues," said Abdul Qadir, a doctor who managed to escape.
Another hospital staff member wrote on Facebook: "Attackers are inside the hospital. Pray for us."
President Ashraf Ghani said the attack "trampled all human values".