A crash in the middle of the bunch disrupted proceedings, however, as Sagan looked to go long in a bid to secure his first victory of the season.
Ewan had other ideas, however – despite being without a lead-out – kicking at the perfect time and surging past the man in the rainbow jersey to claim another stage victory.
Niccolo Bonifazio (Bahrain-Merida) beat Van Poppel into third place, while Porte was safely inside the top 20 to retain his grip on the overall lead.
Second-placed Gorka Izaguirre’s continued participation is in doubt, however, after the Movistar man was caught up in the crash.
Though he finished the stage, and was credited with the same time as Ewan, the Spaniard was in obvious discomfort post-race, and his team are set to make a decision ahead of stage four.
Santos Tour Down Under 2017: stage three – result
1) Caleb Ewan (AUS) – Orica-Scott – 3.24.45hrs
2) Peter Sagan (SVK) – Bora-hansgrohe – ST
3) Niccolo Bonifazio (ITA) – Bahrain-Merida
4) Danny van Poppel (NED) – Team Sky
5) Edward Theuns (BEL) – Trek-Segafredo
6) Nikias Arndt (GER) – Team Sunweb
7) Sean de Bie (BEL) – Lotto-Soudal
8) Lorrenzo Manzin (FRA) – FDJ
9) Ruben Guerreiro (POR) – Trek-Segafredo
10) Baptiste Planckaert (BEL) – Katusha-Alpecin
General classification
1) Richie Porte (AUS) – BMC Racing – 10.34.59hrs
2) Gorka Izaguirre (ESP) – Movistar +20”
3) Johan Esteban Chaves (COL) – Orica-Scott +22”
4) Jay McCarthy (AUS) – Bora-hansgrohe +24”
5) Nathan Haas (AUS) – Dimension Data +27”
6) Rohan Dennis (AUS) – BMC Racing +29”
7) Luis Leon Sanchez (ESP) – Astana – ST
8) Diego Ulissi (ITA) – UAE Abu Dhabi
9) Rafael Valls (ESP) – Lotto-Soudal
10) Robert Gesink (NED) – LottoNL-Jumbo