Lausanne - World road race champion Peter Sagan powered to victory in Saturday's eighth and penultimate stage to extend his record tally of Tour of Switzerland wins to 15.
The Slovak stormed away from Italian Sacha Modolo at the end of the 100km ride around Schaffhausen to add to his win on stage five, as Matteo Trentin finished third.
Bora rider Sagan, 27, looks in good shape heading into July's Tour de France, where he will be expecting to claim an unprecedented sixth consecutive green jersey.
Simon Spilak finished safely in the peloton to stay in the overall lead.
The Slovenian will take a 52-second advantage from BMC's Damiano Caruso into Sunday's final stage, a 26.8km time trial.
Italy's Caruso is 13 seconds clear of third-placed Steven Kruijswijk, with the battle for the yellow jersey set to be fought between the leading trio.
The Tour of Switzerland is one of the main two traditional warm-up events for the Tour de France along with the Criterium du Dauphine.
Tour of Switzerland results after the eighth stage over 100km around Schaffhausen on Saturday:
1. Peter Sagan (SVK/BOR) 100km in 2hr 12min 52sec, 2. Sacha Modolo (ITA/EAU), 3. Matteo Trentin (ITA/QST), 4. Magnus Nielsen (DEN/ORI), 5. Niccolo Bonifazio (ITA/BAH), 6. Michael Matthews (AUS/SUN), 7. John Degenkolb (GER/TRE), 8. Oscar Gatto (ITA/AST), 9. Kevin Reza (FRA/FDJ), 10. Salvatore Puccio (ITA/SKY) all same time
1. Simon Spilak (SLO/Katusha) 27hr 59min 50sec, 2. Damiano Caruso (ITA/BMC) at 0:52, 3. Steven Kruijswijk (NED/LNL) 1:05, 4. Domenico Pozzovivo (ITA/ALM) 2:28, 5. Rui Costa (POR/EAU) 2:35, 6. Mathias Frank (SWI/ALM) 2:51, 7. Mikel Nieve (ESP/SKY) 2:54, 8. Jon Izagirre (ESP/BAH) 3:51, 9. Marc Soler (ESP/MOV) 4:07, 10. Peio Bilbao (ESP/AST) 4:10.