Britain's Jonathan Tiernan-Locke has retained the overall lead in the Tour of Britain after Spain's Pablo Urtasun outsprinted Dutchman Marc de Maar to win the penultimate stage.
Urtasun was part of a four-man breakaway, which also included Euskaltel Euskadi team-mate Samuel Sanchez and Ivan Basso, in the 172.9km stage seven between Barnstaple and Dartmouth.
Devon rider Tiernan-Locke was in a chasing group which finished 46 seconds down.
But he retained the gold jersey and leads the overall race by 18 seconds from Australian Nathan Haas. He is a further five seconds ahead of Damiano Caruso of Italy.
The 28-year-old is strongly fancied to become Britain's first winner of the race since Chris Lillywhite's Milk Race triumph in 1993.
Tiernan-Locke attacked from the peloton with 10km to go, on an uphill section, and he managed to drop Australian Leigh Howard, one of his main rivals in the general classification.
Howard, who had initially taken three seconds out of the leader in the first intermediate sprint of the day before fading, is now more than a minute behind the Endura Racing rider and looks to be out of the reckoning for the race win.
Sunday's final stage, between Reigate and Guildford, is 147.8km and includes four category climbs and an uphill finish on cobblestones.
Saturday's stage, in glorious sunshine and with crowds packing the route, saw an initial group of 30 riders break away. That was reduced to 10 for a large proportion of the race and eventually whittled down to four as the undulating course took its toll.
The quartet battled to the line with Urtasun edging out De Maar, who was looking for his second stage win after winning in Stoke in midweek.
Tiernan-Locke is rumoured to be joining Team Sky at the end of the season and will compete for Great Britain in the road race on 23 September at the Road World Championships in the Netherlands.
Stage Seven, Barnstaple to Dartmouth
1. Pablo Urtusan, Spa, Team Euskaltel Euskadi, four hours, 20 minutes, 31 seconds
2. Marc de Maar, Ned, United Healthcare, same time
3. Ivan Basso, Ita, Liquigas, same time
4. Samuel Sanchez, Spa, Euskaltel Euskadi, +0.02
5. Leopold Koenig, Cze, Netapp, +0.38
6. Nathan Haas, Aus, Garmin Sharp, +0.46
7. Bernard Sulzberger, Aus, Raleigh, same time
8. Jonathan Tiernan-Locke, GB, Endura Racing, same time
9. Bartosz Huzarski, Pol, NetApp, same time
10. Damiano Caruso, Ita, Liquigas, same time
1. Jonathan Tiernan-Locke, GB, Endura Racing, 29:38:14
2. Nathan Haas, Aus, Garmin-Sharp +0:18
3. Damiano Caruso, Ita, Liquigas-Cannondale + 0.23
4. Leigh Howard, Aus, Orica-GreenEDGE +1:02
5. Christopher Jones, US, UnitedHealthcare +1.12
6. Bartosz Huzarsku, Pol, Team NetApp + 2.01
7. David Lelay, Fra, Saur Sojasun, same time
8. Boy Van Poppel, Ned, UnitedHealthcare +2.23
9. Christian Knees, Ger, Team Sky +2.26
10. Jerome Coppel, Fra, Saur Sojasun +4.21