George Zimmerman, a neighbourhood watch volunteer who confessed to killing black teenager Trayvon Martin in Florida, has been charged with second degree murder.
The Florida special prosecutor said that Zimmerman's claims of self-defence could not be not supported.
Zimmerman turned himself and was arrested. He was transferred to Seminole County jail, according to news reports, and is being held without bail.
"We filed an information charging George Zimmerman with murder in the second degree. It is the search for justice for Trayvon that has brought us to this moment," Angela Corey, the Florida State Attorney, said, according to the Daily Telegraph.
Trayvon's mother, Sybrina Fulton, said: "We simply wanted an arrest. Nothing more, nothing less and we got it and I say thank you."
Trayvon was shot dead on 26 February while he was walking back from a grocery store to the home of his father's fiancee in a gated community in Sanford, Florida.
Zimmerman, a neighbourhood watch volunteer, called 911 and said he thought Martin, who was wearing a hooded sweatshirt, looked suspicious.
Minutes after the call a confrontation ensued and Zimmerman shot Martin. He later said that he acted in self-defence. But Trayvon Martin's family and supporters believe that the killing was racially motivated.
Zimmerman was not arrested and was allowed to leave the Sanford police station within hours of the death.
In the weeks that followed, thousands of people around the country took to the streets wearing hooded sweatshirts like that worn by Trayvon, demanding the arrest of Zimmerman.