Despite a faltering lead-out from his Orica-Scott team, the speedy Australian ramped up the pace into Victor Harbor to beat world champion Peter Sagan (Bora-Hansgrohe) to the line.
Italian Niccolo Bonifazio was third for his new team, Bahrain-Merida.
Overall race leader Richie Porte (BMC Racing) finished safely in the peloton to maintain his overall lead.
Second-placed GC rider Gorka Izaguirre (Movistar) didn’t quite have as much luck, getting caught up in a crash in the final three kilometres and coming away with abrasions.
Although the Spaniard retains his second place thanks to the three kilometre crash rule, he may ultimately suffer from his injuries.
Three stages of the 2017 Tour Down Under remain, with stage four on Friday featuring rolling terrain from Norwood to Campbelltown. The decisive stage of the race takes place on Saturday, with a finale on Willunga Hill.
The race concludes on Sunday with a fast-paced criterium around Adelaide.