The shooting happened at White Plains Road and Lafayette Avenue in the Soundview section after 10 p.m.
Officer Daniel Vargas, 31, was part of the NYPD's gun violence suppression division. He exchanged gunfire with a suspect and was hit in the back below his bullet-proof vest.
"He's in a lot of pain but, thankfully, we expect him to make a full recovery," Police commissioner Dermot Shea said at a late-night news conference.
The officer, a 6-year veteran, was rushed to Jacobi Medical Center.
Get breaking news alerts in the FOX5NY News app. Download for FREE!
Authorities charged Ajani Jones, 24, of the Bronx, with attempted murder, assault, criminal possession of a weapon, and criminal possession of stolen property, the NYPD said.
Local police union president Patrick Lynch sounded off after the shooting.
"Gun violence is up 100% since last year. You have to ask yourself 'Why?' and 'How do you solve it?'," Lynch said.