Officer Ann Carrizales pulled the vehicle over Saturday at 3:30 a.m. after the car idled at a green light with its turn signal on.
She approached the vehicle and asked the occupants if they were OK, the Houston Chronicle reported.
The driver told Carrizales that they were on their way home from work.
The front-seat passenger in the car then began shooting at the officer, who fired back as the car sped away.
Carrizales was shot in the face and chest, but got back in her vehicle and followed the car for more than four miles.
The vehicle then stopped, and two of the occupants fled on foot.
Authorities found the 21-year-old shooter, Sergio Francisco Rodriguez, who was charged with aggravated assault on a peace officer.
A warrant has been issued for the driver, 28-year-old Freddy Henriquez.
Both men are Honduran nationals and do not have documentation, the Chronicle said.
The second passenger has not been apprehended.
Carrizales, 40, underwent surgery Saturday and was in stable condition following the operation, police said.