Winds of more than 100 kilometres per hour have uprooted trees and brought down powerlines as a severe cold front moved across Perth and the South West.
More than 10,000 homes were left without power, with Como, Manning, Salter Point and Hocking among the worst hit.
A tree landed on a house in Morris Drive, in Forrestfield, and the roof peeled off a garage and slammed into a house in nearby Carissa Way.
The roof of a block of units in Attadale was also damaged.
Resident Tom Hope said about 3:30am he heard an ominous sound.
"There was a big rumbling sound, and the next minute I just had the premonition something was going to happen," he told the ABC.
"I got up and I ran into the bathroom [and] just as that happened the whole roof came off.
"It was like being in a war zone.
"It took me half an hour to get out of there, I couldn't even get out the door."
Payal Jaim was home with her two children, aged two and six, when the roof caved in.
She was hit in the leg by flying debris, leaving it bruised and swollen. But she said she was most concerned about getting her children out.
"I can't hear anything, everything .. for me [was], I have to save my kids," she said.
The children sustained some minor scratches she said, but were otherwise fine.
Boats are reported to have broken their moorings in Fremantle Harbour and sea containers were blown over at Rous Head.
Residents in the Perth suburb of Forrestfield believe they were hit by a mini tornado, but the weather bureau has not yet said if this was the case.
A plane was flipped completely over, and trees were uprooted on Rottnest Island.State Emergency Service volunteers rally to fix damaged homes
The State Emergency Service had received 29 call outs by 8:30am.
The majority of calls have involved minor damage to homes, fallen trees on homes, cars and fences.
More than 96 SES volunteers from 16 units were working to fix damaged houses throughout the metropolitan area, a spokesman said.
Forrestfield was worst hit with 10 calls for help.
The majority of calls have involved minor home damage, fallen trees, cars and fences, the Department of Fire and Emergency Services (DFES) said.
Crews were also called to Port Denison, Brunswick Junction and Yallingup.
Bureau of Meteorology Duty forecaster James Ashley said the wind gusts had been widespread.
"The strongest wind gust so far has been around 102 kilometres an hour at Rottnest Island and also at Busselton Jetty and also through Munglinup," he said.
"Jandakot, Cape Leeuwin all seen gusts up around 95 to 100 kilometres an hour.
"The damaging winds up around that 100 kilometres an hour mark have been right across the metro area and the south-west of the state.
"Forrestfield just sounds like, unfortunately, it copped one of the better gusts."
He said damage patterns would reveal more about the weather patterns.
"It's quite difficult to confirm a tornado, having said that it's certainly possible," he said.
A fresh front is expected to bring gusty, potentially damaging winds and more rain this afternoon for areas south of a line from Lancelin to Lake King to Israelite Bay.
The storm has also filled rain gauges across the city.
Bickley received the most rain in Perth, recording 28.2mm.
In the South West, Dwellingup clocked 24.6mm.