It happened outside of the J.P. Stevens High School in Edison just after 8 a.m.
Officer Andrew Roy is a 16-year veteran of the force and works as a school resource officer.
Edison police say 18-year-old Claudia Morgan was in emotional distress, and when Officer Roy tried to help her, she reversed her car into him.
He was pinned between two vehicles.
Police say Morgan fled the scene but was later apprehended by other officers at a Shop and Stop on Inman Avenue.
"My first concern is for Officer Roy's health and recovery," Police Chief Thomas Bryan said. "Our officer sustained serious injuries while trying to calm a troubled young woman and prevent her from leaving school property. Officer Roy demonstrated empathy and dedication to duty."
Officer Roy, 42, was taken to Robert Wood Johnson Hospital in New Brunswick. He is being treated for non-life threatening injuries to his leg and hip.
"His spirits are good," Bryan said. "His attitude is good. He's a great police officer."
Please keep the Edison officer who was struck by a car this morning in your prayers. The officer showed tremendous valor in his actions and we pray for his recovery.— New Jersey State PBA (@NJSPBA) May 30, 2019
Morgan is undergoing psychiatric evaluation to the Rutgers University's Behavioral Health Care facility in Piscataway.
Police have charged her with aggravated assault, obstruction and eluding arrest.
* More New Jersey news
* Send us a news tip
* Download the abc7NY app for breaking news alerts
* Follow us on YouTube