Hurricane Willa has roared into a cluster of Mexican islands holding a prison colony.

The storm is heading for a collision with a stretch of the country’s Pacific coast, its 125 mph winds and high waves threatening high-rise resorts, surfing beaches and fishing villages.

Hurricane Willa
Hurricane Willa in the eastern Pacific (NOAA/AP)

Willa briefly reached Category 5 strength on Monday, then weakened to a Category 3. But the US National Hurricane Centre warned that it was still likely to bring life-threatening storm surge, wind and rain to parts of western Mexico.

The storm battered the Islas Marias, about 60 miles off the mainland, on Tuesday morning. It was expected to blow ashore in the evening south of Mazatlan, a tourist resort of about 500,000 people with many US and Canadian expatriates.

As Willa closed in, the beach in Mazatlan almost disappeared, with waves slamming against the coastal boulevard, black clouds looming overhead.

Hurricane Willa preparations
People buy drinking water ahead of the hurricane (AP)

A few surfers took advantage of the high waves even as workers boarded up windows on hotels, shops and homes.

Schools were closed and the streets nearly empty.

The federal government issued a decree of “extraordinary emergency” for 19 municipalities in Nayarit and Sinaloa states.

Officials said 7,000 to 8,000 people were being evacuated from low-lying areas, mostly in Sinaloa state, where small towns sit amid farmland tucked between the sea and lagoons.

Hurricane Willa preparations
People board up their windows ahead of the storm (AP)

Forecasters said Willa would blow ashore somewhere along a 140-mile stretch from Mazatlan to San Blas.

Enrique Moreno, mayor of Escuinapa, a municipality of about 60,000 people along Willa’s potential track, said officials were trying to evacuate everybody in the seaside village of Teacapan. He estimated 3,000 were affected but he expected some would try to stay.

“The people don’t want to evacuate, but it’s for their security,” he said.