The earthquake could be felt in Andalusia's Seville and Huelva provinces, Spain's ABC newspaper reported.
Emergency services said they received calls from the city of Seville and Punta Umbría at 8.06am.
The earthquake was also felt in Cadiz and in the south of the region of Extremadura, according to reports.
Spain's National Geography Institute said the earthquake had its epicentre 90km (56 miles) of the Moroccan city of Larache.
The earthquake was 69km below ground, the institute reported.