Speed and alcohol are the likely causes of the crash, in which a man rolled his car 8m down a bank into the river, police say.
The crash happened in Leith Valley Rd, 2km from Malvern St, about 11am.
Senior Constable Jason Martin, of Dunedin, said the driver asked members of the public who found him not to call police.
They transported him to hospital and then reported the accident at the police station, Const Martin said.
Police were waiting for the results of a blood test, he added.
The man, aged in his 50s, extracted himself from the upside-down car and was found walking down the road, bleeding from his head, Const Martin said.