Roofs were ripped from homes, debris and fallen trees littered the streets, and some areas were submerged by flood waters.
One town in central Taiwan reported "widespread" landslides and water levels a storey high.
Around 8,000 people were evacuated from their homes before the typhoon struck, with hundreds of soldiers deployed to high-risk areas and the whole island declared an "alert zone" by the authorities.
In the capital Taipei, a 50-year-old police officer died after being hit by bricks that came loose during the typhoon, the Central Emergency Operation Centre said.
More From This Section
In Taichung city, a man was missing after falling into a river.
Some 104 people were reported injured, mostly by trees or flying debris, with the majority recorded in Taichung.
Soulik made landfall on the northeast coast around 03:00 2000 GMT yesterday, packing winds of up to 190 kilometres an hour, the Central Weather Bureau (CWB) said.
Strong winds battered the island for much of the day but at 0900 GMT the CWB downgraded Soulik to a tropical storm and lifted the land warning as it churned towards mainland China.
"The water came very fast, catching residents totally unprepared -- in some areas, it was one-storey deep," township official Wu Yuan-ming told AFP.
The nine were rescued by firefighters in rubber boats after the river broke its banks, Wu said.
"Flooding and landslides were widespread in the town, especially in the areas near mountains," he added, calling the effects of the typhoon "more serious than we predicted".
Landslides reached the backyards of residents' homes but they had already evacuated, Wu said, adding that the ground may have been loosened by an earthquake last month.
The northern village of Bailan saw the heaviest rain, measuring 900 millimetres over the past two days, with winds gusting up to 220 kilometres per hour.