Typhoon Chan-hom has crossed China's heavily populated eastern coast, forcing the evacuation of almost 1 million people, shutting transport links and devastating swathes of farmland, the government and state media said.
The powerful storm could be the strongest typhoon to strike Zhejiang province, just south of Shanghai, since 1949, China's National Meteorological Centre (NMC) said.
It made landfall at 4:40pm (6:40pm AEST) near the port of Ningbo, home to almost 6 million people, before brushing Shanghai and its population of 23 million.
Later in the evening, the storm slowed in speed and was packing winds of up to 162 kilometres per hour as it hit the city of Zhoushan, the NMC said.
Out at sea, Chan-hom was whipping up waves of up to 10 metres high, the US government's Joint Typhoon Warning Centre said.
Zhejiang evacuated about 960,000 people and called its entire fishing fleet back to port, state media said. Provincial authorities said earlier that nearly 30,000 vessels had moored safely.
Some parts of the province were deluged with more than 300 millimetres of rain in the 24 hours before Saturday morning, the local government said.
Shanghai forecast the typhoon would "brush" within 100 kilometres of the city late on Saturday or early on Sunday as it veered into the Yellow Sea, according to a local government posting on its official microblog.
The local government urged residents to stay home and cancelled several public events as rain picked up towards midday.
"We recommend everyone does their best to use 'squatting at home' tactics to welcome the typhoon," it said in a statement.
Shanghai's Pudong International Airport cancelled 500 flights while Hongqiao Airport cancelled 250 because of the typhoon, the official People's Daily newspaper said.