Slovene Simon Spilak won the fourth stage of the Tour of Romandie on Saturday as Chris Froome extended his overall lead.
Briton Froome tightened his grip on the yellow jersey as he finished just behind Spilak after 188.5km from Marly to Les Diablerets.
In dismal weather conditions the lead pair finished more than a minute ahead of Rui Alberto Da Costa, leaving Froome with a 47-second advantage over Spilak ahead of Sunday's final stage.
Sky's Froome had led American Andrew Talansky by just six seconds since winning Tuesday's prologue but his breakaway with Spilak on the day's final climb ensured he should secure overall victory on Sunday's individual timetrial.
Should he do so it would augur well for the 27-year-old, whose teammate and countryman Bradley Wiggins won this event last year before going on to claim success at July's Tour de France.
Froome came under pressure on the final climb, Les Mosses, which replaced the advertised Col de la Croix, removed due to snow on its peak.
Thibaut Pinot, Robert Kiserlovski and Spilak all attacked the yellow jersey but Froome responded by hunting down Spilak and working well with the Katusha rider to open up a lead on the chasing pack, which they extended on the 8km plateau to the finish.
With the pair working well together, Froome let his breakaway companion take the stage win as he settled for boosting his overall chances.