Cannon was found suffering from a gunshot wound on Archers Road on Sunday night and lifesaving efforts failed.
Police officers identified Darius Sessoms as the suspect and issued an arrest warrant.
Sessoms was arrested on Monday after a joint operation involving the Wilson Police Department, the U.S. Marshals Service, and other law enforcement agencies. He was found inside a house in Goldsboro.
Sessoms was charged with first-degree murder on Wednesday, a day before Cannon's funeral, the police department announced. The suspect is being held without bond.
According to witnesses, Sessoms walked up to Cannon while the boy was riding his bicycle and shot him.
"I just don't understand why he did it. How can you walk up to a little boy, point blank, and put a gun to his head and just shoot him? How could anyone do that?" Charlene Walburn, a neighbor, told ABC 11.
"For a second, I thought, 'That couldn't happen.' People don't run across the street and kill kids," Doris Lybrand, another neighbor, told WRAL.