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 provided a suspected motive.

Westman was a former pupil of the school that is adjacent to the church. The attacker's mother previously worked at the establishment, according to a school newsletter from 2016.

The young survivor, 10-year-old Weston Halsne, explained that his friend saved his life by lying on top of him during the shooting.

Weston stated his friend got hit in the back, and while he was worried for him, he was relieved to hear he was okay.

Witness accounts included confusion and shock from residents who initially thought the loud noises were construction sounds. Local witnesses described seeing injured children fleeing the building, covered in blood, creating a heartbreaking scene.

Hundreds attended a vigil for the victims, reflecting the community's grief and outrage over yet another act of gun violence. Minnesota Governor Tim Walz condemned the situation as all too common across the country.