Qwentyn Hunter of Winter Garden, Fla., was in a pool aboard the Carnival Cruise Ship Victory when he was spotted motionless in the pool, WESH-TV, Miami, reported.
Passenger Deshaun Christian, 23, told CNN a DJ noticed the boy struggling in the water and stopped the music, then a guest jumped into the mid-ship pool to pull the boy out.
"It was a lot of chaos, people were going crazy, people were praying, they had their hands to the sky. It was a scary scene, seeing a little boy just lifeless," Christian said.
A police statement indicated the boy, of Winter Garden, Fla., was swimming with his 10-year-old brother when he was found underwater.
Carnival Cruise spokeswoman Joyce Oliva told CNN the company does not have lifeguards on duty at its pools, and parental supervision is required for children under 13.
Several passengers attempted to revive him, but he died on the ship, Police Detective Javier Baez said.
The ship docked in Miami early Monday morning after the cruise.
Couple calls 9-1-1 over missing hash browns; assault McDonanld's employees
Video of Victoria’s Secret models trying to 'twerk' hits Instagram