Just like he did last year in the same finishing town of Uraidla, Sagan mixed it with the puncheurs and climbers and was too fast for Daryl Impey (Mitchelton-Scott) and Luis León Sánchez (Astana) in the finishing sprint; the only difference from 2018 was that Sánchez and Impey swapped second and third position, the former rolling in behind Sagan.
In what was the most eventful stage of this year's race so far, there were a few attacks late on, but the three-time world champion Sagan benefited from the small bunch grouping together in the final kilometre.
Despite Sagan earning 10 bonus seconds, surprise stage two winner Patrick Bevin holds onto the race lead by one second from the Slovak.
How it happened
The opening two stages of the race had been reduced in length owing to the extreme heat in south Australia, but teams decided to keep the original distance of 146.2km in a pre-stage meeting.
Keeping in tradition with this year's race, the breakaway was formed almost immediately and Elia Viviani, winner of stage one and second overall before the stage started, was an eye-catching inclusion. He clearly got involved to earn bonus seconds and enhance his chances of winning the points classification, and he did just that, winning the first and second intermediate sprint.
His breakaway companions were Nic Dlamini (Dimension Data), Michael Potter (UniSA-Australia), Manuele Boaro (Astana), James Whelan (EF-Education First), Nico Denz (AG2R La Mondiale) and Léo Vincent (Groupama-FDJ).
With 54km to go, and his day's objective fulfilled, Viviani dropped back to the peloton; just over 20km later there was a split in the break with Dlamini, Whelan and Potter nudging 22 seconds ahead of new escapees Alberto Bettiol (EF-Education First), Davide Ballerini (Astana) and Boara.
At 26km from the finish, and as they began the penultimate lap of the Adelaide Hills course, Whelan and Bettiol were the only riders out front. As the hills rose to difficult gradients, Whelan let up and permitted Bettiol to ride solo; the Italian had a 70 second buffer to the Team Sky-led peloton.
The British WorldTour team and Mitchelton-Scott were setting a hard pace at the front and the peloton was losing colleagues constantly, with pure sprinters dropped. At 13.5km and on a climb, Bettiol was caught in cruel fashion: almost standstill and touching his feet which appeared to indicate cramp.
There was to be no more attacks until the final climb at 3.4km to go. Impey, the reigning champion, was second wheel but couldn't prevent Team Sky's young Frenchman Kenny Elissonde from escaping. Robert Gesink (Jumbo-Visma) followed, but they were caught a kilometre later.
Michael Woods (EF-Education First) then attacked but his move was closely guarded by Sánchez, Sagan and Dries Devenyns (Deceuninck - Quick-Step), the latter who tried to go solo himself.
But the reduced peloton were all back together as they went under the blue inflatable that denoted just 1000 metres left to race. Impey, led out perfectly, was the first to go and Sagan was quick to stay behind him, comfortable in his slipstream. Behind Sagan was Sánchez.
Both the Slovak and Spaniard benefited from Impey leading them, Sagan dodging to the right and overtaking the South African champion and holding off a strong sprint from Sánchez by half-a-wheel's length.
It is Sagan's first win since he triumphed on stage 13 of the Tour de France last July.
Tour Down Under 2019, stage three: Lobethal to Uraidla (146.2km)
1. Peter Sagan (Svk) Bora-Hansgrohe, in 3:46.06
2. Luis León Sánchez (Esp) Astana
3. Daryl Impey (Rsa) Mitchelton-Scott
4. Danny van Poppel (Ned) Jumbo-Visma
5. Patrick Bevin (Nzl) CCC Team
6. Jan Polanc ( Slv) UAE-Team Emirates
7. Ruben Guerriro (Por) Katusha-Alpecin
8. Tadej Pogacar (Slo) UAE-Team Emirates
9. Chris Hamilton (Aus) Team Sunweb
10. Domenico Pozzovivo (Ita) Bahrain-Merida
General classification after stage three
1. Patrick Bevin (Nzl) CCC Team in 10.20.09
2. Peter Sagan (Svk) Bora-Hansgrohe, at 1sec
3. Luis León Sánchez (Esp) Astana, at 9secs
4. Michael Storer (Aus) Team Sunweb, at 10secs
5. Daryl Impey (RSA) Mitchelton-Scott, at 11 secs
6. Danny van Poppel (Ned) Jumbo-Visma
7. Jan Polanc ( Slv) UAE-Team Emirates
8. Ryan Gibbons (RSA) Dimension-Data
9. Chris Hamilton (Aus) Team Sunweb
10. George Bennett (Nzl) Jumbo-Visma, at 15secs
Thank you for reading 5 articles this month* Join now for unlimited access
Enjoy your first month for just £1 / $1 / €1
*Read 5 free articles per month without a subscription
Join now for unlimited access
Try first month for just £1 / $1 / €1