VERBIER, Switzerland -- Johan Chaves of Colombia held off Roman Kreuziger and Bauke Mollema to win the mountainous eighth stage of the Tour de Suisse on Saturday as Tony Martin moved closer to overall victory.
The 24-year-old Chaves attacked about 2.5 kilometers (1.5 miles) before the finish and finished three seconds ahead of his rivals.
German time trial specialist Martin finished in a small group of riders behind the top three, 17 seconds off the pace. He increased his lead over Dutch cyclist Tom Dumoulin to 51 seconds going into Sunday's final stage.
"I was a little surprised but I think we're all already a bit tired," Martin said. "But it's not over yet. Attacks can also come tomorrow."
Portugal's Rui Costa remained more than a minute behind in third after completing the tough final ascent in the same group as Martin.
Swiss rider Mathias Frank is fourth, and Mollema of the Netherlands fifth. Canada's Davide Formolo and Czech cyclist Roman Kreuziger are also within two minutes of Martin.
The 219-kilometer hilly trek from Delemont to Verbier was the tour's longest, with an elevation gain of 2,541 meters.
The 156-kilometer final stage is another tough trek through the mountains.