The victory in the 178km stage from Bourgoin to Aubenas was Cavendish's fifth in this tour and his ninth in two Tour De France's.
The Colombia HTC rider sprinted to the finish line ahead of Thor Hushovd of Norway and Germany's Gerald Ciolek.
"I'm really, really happy. It was a beautiful, beautiful win," Cavendish said to the Team Colombia press office. "We really didn't have this stage put down as one that would end in a bunch sprint, but we came through all the same. At the team meeting I told the guys that if we got to the climb all together and I could hang on, then I would do my absolute best to win. Half the team supported me all the way to the climb and half the team were there with me on the descent that followed and through to the finish. They were amazing, particularly if you consider that Saturday's a really hard mountain stage. [Columbia-HTC teammate] Tony Martin led me out perfectly, even though it was a very tough uphill finish, but I did it."
Cavendish is now just two days away from completing the Tour de France for the first time in his career.