Bora-Hansgrohe rider Peter Sagan won stage three of the International Cycling Union Tour de Suisse ©Getty Images

Bora-Hansgrohe's Peter Sagan claimed his first stage victory of the International Cycling Union (UCI) Tour de Suisse with a sprint finish that earned him the overall race lead.

The Slovakian edged out Italy's Elia Viviani of Deceuninck–QuickStep at the end of the 162.3 kilometres stage three from Flamatt to Murten and took the general classification lead courtesy of his stage-winning time bonuses.

Four riders – Jumbo-Visma's Bert-Jan Linderman from the Netherlands, South African Willie Smit of Katusha-Alpecin, Canada's Rally UHC Cycling rider Ryan Anderson and Switzerland's IAM-Excelsior rider Simon Pellaud – attacked from the off and built a four-minute lead on the peleton.

The gap had steadied to a three-minute advantage with 50 kilometres to go and the peleton started to claw them back once the final classified climb had been negotiated.

It was Sagan's Bora-Hansgrohe team and Deceuninck–QuickStep that put the work in and despite a rapid stop for a bike change 18 kilometres from home, the Slovakian caught up with peleton.

Pellaud went on a solo attack with eight kilometres to go but it proved short-lived as the sprint teams brought the race back together.

Argentina's Max Richeze and Danish rider Michael Mørkøv moved to the front to support team mate Viviani but it was Trek-Segafredo who led entering the final corner, just 200 metres from the line.

Sagan's hand was forced and the sprint king moved quickest to get in front coming out of the corner and Viviani could not catch him, the Slovakian crossing the line in 3hours 39min 25secs.

Germany's John Degenkolb of Trek-Segafredo was third in the same time as the main contenders stayed out of trouble in a bunch finish.

The 10-second time bonus for winning the stage puts Sagan in the yellow jersey, with a time of 7:51:31, with Denmark's Kasper Asgreen 10 seconds behind in second for Deceuninck-QuickStep.

Australian Rohan Dennis drops to third, the Bahrain-Merida rider a further second adrift.

Tomorrow's 169.3 kilometres fourth stage will leave Murten and wind through the Jura Mountains to Arlesheim.