After a manhunt was launched last week, the man is believed to have killed five of his neighbors after they asked him to stop shooting his rifle in his yard, according to Texas law enforcement.
The alleged gunman, Francisco Oropesa, had evaded capture since the large-scale shooting on Friday in the small Texas town of Cleveland.
“We now have this man in custody,” San Jacinto County Sheriff Greg Capers told reporters at a news conference on Tuesday night.
“He was caught hiding in a closet underneath some laundry.”
The 38-year-old Mexican national allegedly shot his neighbours after they asked him to stop shooting his semiautomatic rifle because the noise was keeping a baby awake.
The victims were aged between eight and 31, with several other residents in critical condition with multiple gunshot wounds.
Authorities deployed hundreds of law enforcement officers to look for the suspect and offered a reward of $80,000 for information leading to his capture.