The weather service said there is a threat of tsunami waves reaching 0.3 to 1 meter (about 1 to 3 feet) above tide level for the coasts of Jamaica, Belize, Cuba, Honduras, Mexico and the Cayman Islands.
The United States Geological Survey said the earthquake had a preliminary depth of 10 kilometers (6 miles).
The quake hit 125 kilometers (77.6 miles) north-northwest of Lucea in Jamaica.
The earthquake was felt as far away as Havana and Miami. Some people in the Cuban capital were evacuating taller buildings.
There are no initial reports of damage or casualties.