The dispute began on Tuesday in Anaheim when an un-uniformed officer grabbed a 13-year-old boy walking across his lawn, accusing him of making a threat.
Footage of the incident shows two other youths shove and punch the officer, who pulls a pistol from his waistband.
About 300 people took to the streets of Anaheim on Wednesday night.
Several windows were smashed on homes during the rally, police said.
Some 24 people were arrested, including eight women and six juveniles, according to the Los Angeles Times.
Anaheim police told the newspaper the dispute arose from "ongoing issues" with young people walking across the officer's property.
During the ensuing argument, the LAPD officer detains the 13-year-old, whom he says threatened to shoot him.
The boy insists he only threatened to "sue" him, and accuses the officer of directing an obscene epithet at one of the girls in the group, which the man denies.
"Let me go," the boy says repeatedly.
During the stand-off, a group of young people stand by, telling the man to release him.
One of the young onlookers shoves the officer over a hedge and another throws a punch at him.
The man, still holding on to the 13-year-old, pulls a pistol and a single gunshot rings out, though it is not clear if he fired deliberately.
Police arrested two of the boys, but not the off-duty officer.
A 13-year-old faces charges of battery and making criminal threats.
A 15-year-old was detained on suspicion of assault and battery.
The off-duty officer has been placed on administrative leave, pending an inquiry.
An Anaheim woman, who claims to be the 13-year-old's mother, described the video on Facebook as "devastating" and "disturbing".
Hundreds of protesters have taken to the streets of a Los Angeles suburb after an off-duty policeman fired a gun during a fracas with teenagers.