It happened around 12:45 a.m. in the parking lot of Sparky's Club in the 700 block of Bragg Boulevard.
Authorities said the officer stopped the man's vehicle for a traffic violation, and at some point when the officer approached the vehicle, a fight ensued.
"During the course of the traffic stop, a physical altercation occurred between the suspect - the driver of the vehicle - and the police officer. During that altercation, that officer pulled his gun and fired upon the suspect, striking the suspect," explained police spokesman Gavin MacRoberts.
Police said Officer Bobby Cash fired several shots, hitting 45-year-old Gregory Paul Townsend in the torso.
Another Fayetteville officer - Police Specialist Heather Napieralski - who arrived to back up Officer Cash - was also involved in the struggle before the shots were fired.
Townsend was taken to Cape Fear Valley Medical Center where he underwent surgery.
Officer Cash was also injured in the altercation and was treated and released at Cape Fear Valley.
ABC11 has learned Townsend had an outstanding warrant for his arrest before the traffic stop.
The Fayetteville Police Department has asked the State Bureau of Investigation to review the shooting - which is standard procedure.
Both officers Cash and Napieralski are on administrative duty pending the outcome of the SBI investigation - which is also standard.