The Quick Step rider, who had not raised his arms in triumph since winning in Tours in 2005, outsprinted Spaniard Oscar Freire of the Rabobank team to take the green jersey off Erik Zabel, who came home third.
Swiss Fabian Cancellara of the CSC team retained the overall leader's yellow jersey.
Astana riders Alexander Vinokourov and Andreas Kloeden, who were injured in crashes on Thursday, spent the day hovering in the rear of the main pack but crossed the line with the bunch.
"The stage was very hard. He (Vinokourov) has had a lot of pain in his knees," Astana manager Marc Biver told reporters. "It was hard for him to push on the pedals.
"For Kloeden, it was a bad day, with a lot of pain," he added. "His right foot got numb, he could not put pressure on the pedals."
German Kloeden, unable to stand on his pedals, struggled at the back of the peloton during the ascent of the Col de Brancion, a category-four climb.
Team leader Vinokourov has stitches in his knees and elbow as well as bruises on his buttocks, while Kloeden is suffering from a fissure in his coccyx and hip pains.
Briton Bradley Wiggins broke away after only two km, building a 17-minute lead over the main pack but his solo effort ended seven km from the line.
Sylvain Chavanel of the Cofidis team retained the polka-dot jersey.