The world champion took a tight victory in Normandy after the peloton caught breakaway Belgian Jasper Stuyven in the final 500 metres of an uphill finish.
![]() |
Sagan held off the challenge of Julian Alaphilippe to win his sixth Tour stage |
Cavendish finished one minute 45 seconds behind Sagan in what was always going to be a tough stage for him.
Defending champion Chris Froome and rival Nairo Quintana finished together but Alberto Contador lost 48 seconds.
Two-time winner Contador, who has geared his entire season around trying to win this year's Tour, crashed for a second time in two days as early rain made for treacherous conditions on the roads from Saint-Lo to Cherbourg-en-Cotentin.
He landed on the same right-hand side as he bruised in a heavier crash during Saturday's opening stage and looked in discomfort as he crossed the finish line.
Sensational Sagan
Slovak Sagan, a Tinkoff team-mate of Contador, will wear the yellow jersey for the first time after winning his sixth Tour de France stage.
He went into the stage as favourite to win with the uphill finish ideally suiting him and the 26-year-old lived up to his billing with a well-timed sprint to the line.
Sagan was passed by French hope Julian Alaphilippe in the closing 200m but he kicked again to beat the Etixx - Quick-Step rider by a bike length, with Spain's Alejandro Valverde third.
However, he admitted he did not realise he had even won the stage, which finished at the top of a two kilometre ascent.
Sagan said: "I'm very surprised I won because I was thinking there were still two guys out front and then I finished and I found out I won. I'm very happy.
On winning his first yellow jersey, he added: "It's unbelievable. I'm already wearing a nice jersey (referring to his world champion rainbow bands) so yellow is very nice for me."
More to follow.
Stage two result:
1. Peter Sagan (Svk/Tinkoff) 4hrs 20mins 51secs
2. Julian Alaphilippe (Fra/Etixx - Quick-Step) Same time
3. Alejandro Valverde (Spa/Movistar)
4. Daniel Martin (Ire/Etixx - Quick-Step)
5. Michael Matthews (Aus/Orica BikeExchange)
6. Wilco Kelderman (Ned/LottoNL)
7. Tony Gallopin (Fra/Lotto)
8. Greg Van Avermaet (Bel/BMC Racing)
9. Bauke Mollema (Ned/Trek)
10. Chris Froome (GB/Team Sky)
General classification after stage two:
1. Peter Sagan (Svk/Tinkoff) 8hrs 34mins 42secs
2. Julian Alaphilippe (Fra/Etixx - Quick-Step) +8secs
3. Alejandro Valverde (Spa/Movistar) +10secs
4. Warren Barguil (Fra/Giant) +14secs
5. Chris Froome (GB/Team Sky) Same time
6. Greg Van Avermaet (Bel/BMC Racing)
7. Nairo Quintana (Col/Movistar)
8. Roman Kreuziger (Cze/Tinkoff)
9. Simon Gerrans (Aus/Orica BikeExchange)
10. Daniel Martin (Ire/Etixx - Quick-Step)