Authorities said the officer struggled with 21-year-old Carlos Antonio Riley Jr. during a traffic stop near the Forest Point apartment complex around 10:20 a.m.
During the struggle, the sources said the officer was shot in the leg. He was reportedly conscious and alert as he was rushed to the hospital.
According to a Durham Police Department spokesperson, officers took Riley into custody around 1:45 p.m. on Rosetta Drive. Two others were seen being taken from the scene in handcuffs.
"We have taken three people to Durham Police Headquarters. We do have a suspect related to this incident," said Durham Police Spokesman Lt. Brian Reitz. "There were two other people with the suspect when he was encountered. We went ahead and detained them to be interviewed."
Riley is charged with assault on a law enforcement officer causing serious injury, robbery with a dangerous weapon and possession of a firearm by a convicted felon in connection with this case. It is also unclear at this point what charges the other two men will face.
The case remains under investigation.
At last report, there was no condition available for the officer who was shot.