Defending champion Rui Costa won stage seven of the Tour de Suisse today to move up a place to second in the general classification.

Portugal's Costa (Movistar) finished just ahead of Dutchman Bauke Mollema (Blanco) and US rider Tejay van Garderen (BMC).

It leaves him 13 seconds behind overall race leader Mathias Frank (BMC), who is looking to claim the title on home turf and who crossed the line 22 seconds behind Costa this afternoon.

American Joe Dombrowski of Team Sky had led the stage, which ran from Meilen to La Punt, but he was subsequently overtaken and four riders emerged at the front - Costa, Mollema, Van Garderen and France's Thibaut Pinot (FDJ).

Pinot could not keep pace with the other trio - he eventually finished nine seconds behind in fourth - and Costa then out-sprinted Mollema and Van Garderen to secure victory.

Along with Frank, Roman Kreuziger (Saxo-Tinkoff) was also among those who finished 22 seconds behind Costa and the Czech rider is third in the overall standings, 23 seconds off the lead.

Pinot (44secs behind) is fourth overall and Mollema (46 secs) fifth.

Ireland’s Daniel Martin (Garmin-Sharp) was one of the group of six, 22 seconds behind the leader, while Nicolas Roche (Team Saxo-Tinkoff) finished 14th, 1 minute 15 seconds off the pace.

Tomorrow's eighth stage is from Zernez to Bad Ragaz and the race concludes in Flumserberg on Sunday.