Authorities cordoned off the area around the Park Palace guest house in Kabul's Kolola Pushta area immediately after the attack began, at around 8:30 pm local time.
The attack ended about five hours later as ambulances raced out of the area. Kabul's police chief was due to speak to reporters soon, police said.
The brutal assault was reminiscent of two attacks by Taliban fighters in Kabul last year, one on a restaurant and another on a hotel.
A spokeswoman for the US Embassy confirmed that one American was killed in the attack, but gave no other details.
At least two Indian nationals were also killed and three who had lived at the guest house were rescued and sheltering at the India Embassy, a diplomat said.
No one immediately claimed responsibility for the attack.