A former sniper in the US military went on a shooting spree in central Florida, killing four people, including an infant boy in his mother's arms, officials said Sunday.

The suspect, identified as 33-year-old Bryan Riley, shot and killed a 40-year-old man, a 33-year-old woman and her three-month-old son in a residential area in Polk County, Florida, said County Sheriff Grady Judd.

The fourth victim was the child's 62-year-old grandmother.

Riley, who was wearing full body armour, also wounded an 11-year-old girl before surrendering himself to the police following an intense gunfight, Judd said.

Riley, a veteran of the wars in Iraq and Afghanistan, told the police he was a "survivalist" and that he had been taking methamphetamine.

The suspect also told the police, without elaborating, "You know why I did this," according to a statement from Judd published on social media.

Riley was wounded in the gunfight and was rushed to a local hospital, where he again tried to attack police officers and had to be sedated.

After he received medical help, the suspect was transferred to a local jail.

It was not immediately clear what prompted the attack, Judd said. An investigation is underway.

Sign up to our free newsletters

Get the best updates straight to your inbox:
Please select at least one mailing list.

You can unsubscribe at any time by clicking the link in the footer of our emails. We use Mailchimp as our marketing platform. By subscribing, you acknowledge that your information will be transferred to Mailchimp for processing.