The gunman, wearing a camouflage jacket and blue jeans, grabbed the boy at 3:20 p.m. and took him into a back room of a Chinese restaurant where he held him hostage with a handgun, said El Monte police Detective Ralph Batres. He said he did not know the identities of the gunman or the boy or if anyone was with the child when he was taken.
Authorities negotiated with the man for about two hours before a flash-bang grenade exploded and gunshots were fired inside the building. Shortly afterward authorities took the boy out on a stretcher and put him in an ambulance.
The boy suffered a gunshot wound to the thigh and was in critical but stable condition at a nearby trauma center, said county fire dispatcher Brendon Peart.
Batres said the standoff began after a police officer noticed the gunman take the boy off the sidewalk and head to the restaurant. The man ignored the officer's orders to stop and barricaded himself inside a back room, Batres said.
Police closed nearby streets and shoppers were evacuated from neighboring stores as dozens of police officers and other emergency crews surrounded the restaurant.
The Associated Press Contributed to this story