Hurricane Maria has rampaged across Puerto Rico as the strongest storm to hit the US territory in nearly 90 years, bringing widespread flooding and knocking out power, after killing at least nine people in the Caribbean.
Maria, the second major hurricane to roar through the Caribbean this month, made landfall near Yabucoa, on the southwest coast of the island of 3.4 million people.
Thousands of people were seeking safety in shelters.
Carrying winds of 250km/h and driving high storm surges, it ripped the roofs off some buildings and turned low-lying streets into rushing debris-laden rivers.
Buildings trembled as the storm battered San Juan and sent torn off pieces of metal barricades clattering along streets.
"The danger continues - there are flood warnings for the whole of Puerto Rico," Governor Ricardo Rossello warned residents as the storm headed offshore. "Stay in safe places
Broken windows, mangled awnings and gutters dangled haphazardly from buildings or were ripped off entirely.
On its passage through the Caribbean, Maria killed at least one person in the French territory of Guadeloupe and devastated the tiny island nation of Dominica.
Hurricane Irma, which ranked as one of the most powerful Atlantic storms on record, also left a trail of destruction in several Caribbean islands and Florida this month, killing at least 84 people in the Caribbean and the US mainland.
"We have not experienced an event of this magnitude in our modern history," Governor Rossello said in an earlier televised message.
"Although it looks like a direct hit with major damage to Puerto Rico inevitable, I ask for Americas prayers," he said, adding the government had set up 500 shelters.
Electricity was believed to be out across the island, said Pedro Cerame, a spokesman for the governor.
He added authorities had not yet been able to assess the extent of the damage.
Maria was expected to dump as much as 66cm of rain on parts of Puerto Rico, the NHC said. Storm surges, when hurricanes push ocean water dangerously over normal levels, could be up to 2.7 metres.
The heavy rainfall could cause life-threatening flash floods and mudslides, it added.
Maria was set to be the strongest hurricane to hit Puerto Rico since 1928, when the San Felipe Segundo hurricane slammed the island and killed about 300 people, the National Weather Service said.
Before hitting Puerto Rico, Maria passed west of St Croix, home to about half of the US Virgin Islands' 103,000 residents, as a rare Category 5 storm, the top of the five-step Saffir-Simpson scale.
Authorities expected to start assessing storm damage on St Croix from daybreak.
Maria was on a track to pass just north of the northeast coast of the Dominican Republic tonight and tomorrow, the NHC said.
So far, it did not look likely to threaten the continental United States.