Witnesses to a mass shooting in the US city of Minneapolis have described the terrifying scenes after an attacker opened fire on a church in which children were celebrating Mass on Wednesday morning.

One young boy described being protected by a friend who got hit himself.

Two children were killed and 17 others injured in an incident that the FBI is treating as an anti-Catholic hate crime.

The attacker, named as 23-year-old Robin Westman, died at the scene from a self-inflicted gunshot wound. Authorities have not yet given a suspected motive.

Westman, a former pupil of the school that is adjacent to the church, reportedly approached the side of the Annunciation Church and fired dozens of shots through the windows using three firearms. Police also found a smoke bomb at the scene.

Officials are investigating whether the shots were fired from inside the building or outside it, noting that no casings from bullets were found inside.

Eyewitnesses described the confusion as shots rang out. One man thought they were the sounds of a nail gun from a nearby construction site until the reality sank in.

Screams and cries filled the air as children fled the church, some covered in blood. A nearby nanny recalled the disturbing looks on the children's faces as they escaped the horror.

Hundreds attended a vigil for the victims, and while some injured children are expected to recover, the community grapples with the loss.

“We practice for these scenarios, but not in a church,” said young survivor Weston Halsne, reflecting on the unfathomable event.

Minnesota Governor Tim Walz expressed the frustration shared by many, stating how this violence is all too common.

The tragic event has reignited discussions on gun violence and safety in schools with memories of the day etched in the minds of those affected.