The man, who is aged in his 40s, was driving a Holden Commodore carrying the animals north on Caves Road in Yallingup when he hit several trees about 1am.
The impact, south of Whittle Road, caused the car to split into several pieces, propelling of the some parts up to 50 metres over the road and nearby bushland.
The man received serious head injuries and was taken to Royal Perth Hospital. The dogs, which are believed to be his pets, were found dead at the scene.
The crash is one of several serious road incidents this weekend, including a crash which claimed the life of a 19-year-old man in the Wheatbelt town of North Bannister.
A motorcyclist from regional Victoria died yesterday after hitting a tree on Canning Road in Carmel about 10.30am.
The 38-year-old man had been riding with another motorcyclist, who stopped and warned other motorists of the crash, while strangers tried desperately to save him.
Police have urged anyone who witnessed the Yallingup crash to contact Crime Stoppers on 1800 333 000 or online at www.crimestopperswa.com.au.
This article originally appeared on PerthNow.