On a blistering hot day in South Australia, the world champion got the better of Daryl Impey (Mitchelton-Scott) to snatch the victory, the second time this race Impey has finished second. Astana's Luis Leon Sanchez was third.
On a stage that was expected to be fought over by climbers and the general classification riders (and BMC Racing, working for Richie Porte, controlled the climb), Sagan once again displayed his outstanding talent to conquer the final 7.3km Norton Summit and sprint to victory in Uraidla.
It is Sagan's second win of the season - he won the People's Choice Classic at the weekend - and his maiden success at the Tour Down Under.
The Slovakian inherits the leader's jersey from Mitchelton-Scott's Caleb Ewan, who along with almost every other sprinter failed to stay in touch with a shrunken peloton in the latter stages. Sagan has a two second lead over Impey, and 14 seconds to Porte and other pre-race favourites.
Race organisers had hoped that the climb of Norton Summit would ignite a general classification battle and limit the importance of Willunga Hill tomorrow, but Sagan's strength, coupled with every attack being nullified, means that Australia's most famous climb is certain to determine the outcome of the Tour Down Under yet again.
How it unfolded
Searing temperatures greeted riders for the second successive day and 43.1 degrees was recorded in Adelaide. Perhaps because most riders did not want to exert themselves in such intense heat, only two riders broke away in the first kilometre: University of South Australia duo Zak Dempster and Alex Porter.
Their lead was allowed to go out to almost nine minutes but with 50km left to ride, the time gap began to quickly tumble down, with Porter being dropped by Dempster who maintained a lead of around four minutes.
He, however, was swept up the 19km mark to go, with the impending climb of Norton Summit exciting the general classification riders.
Race leader Ewan was dropped on a short climb before the main one, and the leadership of the peloton was constantly rotating, BMC, Team Sky, UAE-Abu Dhabi and Bahrain-Merida all taking turns to shrink the bunch.
BMC were dominant on the climb, with Simon Gerrans leading a ferocious pace to aid Porte and Rohan Dennis, but to also try and shred Sagan out of the back.
After reaching the top of Norton Summit, several riders tried their fortune but without success, including Ion Izagirre (Bahrain-Merida) and George Bennett (LottoNL-Jumbo), the latter of whom was closed down by Porte himself.
And then came the big moment. With kilometres running out, Sagan attacked, his intention to time trial the slight descent to the finish in Uraidla. Four riders, including Porte and Dennis, chased and the world champion was reeled in.
When he was absorbed, however, Porte attacked just before the flamme rouge. He failed to build a lead, though, with the fractured and small bunch left to contest the finish in a sprint.
As there were so few fast men remaining, Sagan was the clear favourite, but Impey was the first to begin his sprint, attacking on a slight bend.
Sagan followed his wheel and it looked like South African Impey was going to hold off the world champion, but Sagan came to the right and eventually managed to overhaul Impey to power to victory just before the line. All general classification riders finished with the same time.
Tour Down Under 2018, stage four: Norwood to Uraidla, 128km
1. Peter Sagan (Svk) Bora-Hansgrohe, in 3-21-07
2. Daryl Impey (RSA) Mitchelton-Scott
3. Luis Leon Sanchez (Esp) Astana
4. Diego Ulissi (Ita) UAE-Team Emirates
5. Jay McCarthy (Aus) Bora-Hansgrohe
6. Dries Devenyns (Bel) Quick-Step Floors
7. Domenico Pozzovivo (Ita) Bahrain-Merida
8. Rui Costa (Por) UAE-Team Emirates
9. Pierre Latour (France) AG2R La Mondiale
10. Laurent Didier (Lux) Trek-Segafredo, all same time.
General classification after stage four
1. Peter Sagan (Svk) Bora-Hansgrohe, in 14-19-49
2. Daryl Impey (RSA) Mitchelton-Scott, at 2 secs
3. Jay McCarthy (Aus) Bora-Hansgrohe, at 9 secs
4. Luis Leon Sanchez (Esp) Astana, at 10 secs
5. Diego Ulissi (Ita) UAE-Team Emirates, at 14 secs
6. Robert Gesink (Ned) Lotto-NL-Jumbo
7. Rui Costa (Por) UAE-Team Emirates
8. George Bennett (NZe) LottoNL-Jumbo
9. Dries Devenyns (Bel) Quick-Step Floors
10. Egan Bernal (Col) Team Sky, all same time
Thank you for reading 20 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