Cavendish produced a brilliant finish to claim victory
Mark Cavendish became only the second British rider to win two stages of the Tour de France in the same year, with a searing sprint finish in Toulouse.
A long-standing escape was caught with 3km left, and although he had struggled on the early hills, Cavendish timed it perfectly to add to his Stage 5 win.
Led out by team-mate Gerald Ciolek, who took second, the Team Columbia sprinter burst through in the last 100m.
"It was brilliant, you saw how well the team worked," said Cavendish.
The Manxman's team-mate, Kim Kirchen of Luxembourg, continues to hold the yellow jersey.
Cavendish followed his maiden win on Wednesday with an outstanding display of power in the driving rain and in doing so ended a 35-year wait for a British rider to match the achievement of Barry Hoban.
"To hold on to the yellow jersey and get a one-two finish; it does not get any better," said the 23-year-old.
"After the first half of the stage the climbs were not too bad and, with the team around me, I had the best possible protection. It worked out amazing.
"Today was the last stage that we could control and then win."
Tomorrow the race enters its first real mountain stage, in the Pyrenees, with two first-category climbs: the Col de Peyresourde and the Col d'Aspin.
The 172.5km Stage 8 began in the rain in Figeac at a high pace, with several riders immediately attacking.
But it was an hour before there was a successful breakaway, with France's Laurent Lefevre of the Bouygues Telecom team opening up a solo gap.
As the rain continued, a trio of riders - Amets Txurruka (Euskaltel), Jerome Pineau (Bouygues Telecom) and Christophe Riblon (AG2R) - eventually bridged the gap to Lefevre.
The foursome extended their lead to five minutes at one point, making Frenchman Pineau the virtual leader.
But, aware of the danger, the peloton gradually closed the gap, bringing it down to 30 seconds at the 30km mark.
Txurruka and Pineau gave it one last effort inside the final 20km, and stretched the gap to nearly a minute.
But with the Liquigas team - perhaps trying to make a point after the overnight suspension of team-mate Manuel Beltran for a positive EPO test - driving the peloton, the escapees' days were numbered.
Unfortunately, so were any hopes David Millar might have had of a late shot at the win - he punctured in the last six kilometres.
But the Scot recovered to finish in the main bunch and remains in seventh place overall.
As in so many other stages in this year's Tour, Cavendish's Team Columbia mustered at the front, and the break was over.
After a sharp right-hand turn into the final kilometre, however, Gert Steegman's Quick Step team appeared to have caught Columbia napping; Cavendish and his colleagues found themselves several places back.
But the young Briton once again backed up his claim to be the fastest man in the world over 200m, coming from several bike lengths back to sprint clear, even having the time and space to ease up as he crossed the line.
And after the race he confirmed his intention to complete this year's Tour before joining his GB Olympics team-mates at their track training camp.
"I'm okay and I will keep going for as long as I can," said Cavendish.
Stage eight results:
1. Mark Cavendish (GB/Columbia) 4hrs 2mins 54secs
2. Gerald Ciolek (Ger/Columbia) same time
3. Jimmy Casper (Fra/Agritubel) same time
4. Oscar Freire (Spa/Rabobank) same time
5. Robert Foerster (Ger/Gerolsteiner) same time
6. Erik Zabel (Ger/Milram) same time
7. Gert Steegmans (Bel/Quick-Step) same time
8. Sebastien Chavanel (Fra/Francaise des Jeux) same time
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.