Authorities said an argument between the 15-year-old and his mother, 40-year-old Keisha Henry, began about 2:30 p.m. when the boy refused to apologize to a teacher outside the school on Lumpkin Road.
The mother punched her son in the face and demanded that he hand over his cell phone, police said. The boy refused.
She jumped into her SUV, drove over the curb and the boy was struck, according to the report. He jumped far enough out of the way that only his left leg was hit by the left side of the vehicle, police said.
The mother got out of the vehicle, took her son's cell phone and left the scene, police said.
Henry, of the 3400 block of Kenneth Court, was charged with aggravated assault.
The 15-year-old was transported to Medical College of Georgia, where it was determined he had broken bones.
Richmond County School System spokesman Louis Svehla said he could not address anything that may have transpired between the teen and a teacher because of school privacy laws.