Police said the 33- or 34-year-old man began shooting at cars with a handgun about 6:10 p.m. Monday while standing in the street near a Rainbow grocery store.
Residents said they heard bursts of gunfire of approximately three or four shots each, the Star Tribune newspaper in Minneapolis reported.
The suspect allegedly fired into a minivan, hitting a 10-year-old boy in the head and the boy's mother in the arm, the St. Paul Pioneer Press reported. The boy was declared dead at Regions Hospital in St. Paul. The mother is expected to recover.
A third victim, a 68-year-old woman, was injured when she pulled her vehicle up to the intersection near where the man was shooting, the Pioneer Press reported. The woman's granddaughter said she was shot in the finger and leg and she was having her finger amputated at Regions Hospital.
Oakdale Police Chief Bill Sullivan said the suspect didn't exchange fire with police when they arrested him.
Sullivan said police were investigating a home about a half block from the grocery store where the suspect either lived with his parents or visited them regularly.
Rosie O'Donnell unveils nearly 50-pound weight loss
Iranian woman stops the execution of son's killer