Sale took a giant step towards a Heineken Cup quarter-final spot with a hard-earned away win over Castres.
HEINEKEN CUP POOL ONE
Castres 16 (7)
Try: Capo Ortega
Pens: Teulet 3
Sale 20 (10)
Tries: Robinson, White
Cons: Hodgson 2
Pens: Hodgson 2
The Sharks trailed 7-3 to a try from Castres' Rodrigo Capo Ortega but a converted Jason Robinson try put the visitors 10-7 up at half-time.
Jason White's try five minutes after the resumption put the Sharks in command but three Romain Teulet penalties brought Castres to 16-17.
But Charlie Hodgson's second penalty 14 minutes from time sealed victory.
It was the Sharks' third straight pool victory, and their second away from home after beating the Dragons in Newport.
Another win in the return fixture with Castres next weekend would see them as firm favourites to qualify for the knock-out stages for the first time.
Scottish flanker White was immense as the Sharks pack subdued the much-feared Castres scrum, and the deadly boot of England fly-half Hodgson did the rest.
It was not all one-way traffic, with a 20m rolling maul from a Castres pack boasting All Blacks props Kees Meeuws and Carl Hoeft resulting in the opening try from lock Capo Ortega.
But the 39th-minute sin-binning of scrum-half Mathieu Barrau allowed Robinson to elude the Castres defence with the last move of the first half.
After White's second try, Sale were reduced to 14 men themselves when scrum-half Sililo Martens was yellow-carded for a high tackle.
Teulet's kicks ensured a nervous finale, but Hodgson gave Sale some breathing space with another penalty and the Sharks' defence held firm for a notable win.
Sale captain Jason Robinson:
"It's a great result for us. Castres are a very strong team - especially at home - and I think we showed great character in coming through and winning this game.
"I think it's our best win in Europe, but it's still early days for us.
"Our team's going to get better and although we're not going to get carried away, we're certainly going to enjoy this and look forward to next week."
Castres: R Teulet; L Milford, N Raffault, P Christophers, R Ropati; Y Delaigue, A Albouy; C Hoeft, R Vigneaux, K Meeuws (capt), K Ghezal, L Nallet, J Puricelli, P Volley, F Faure.
Replacements: D Roumieu, Y Forestier, J Castex, F Capo Ortega, G Taussac, F Tuilagi, M Barrau.
Sharks: D Larrechea; M Cueto, M Taylor, E Seveali'i, J Robinson (capt); C Hodgson, S Martens; A Sheridan, S Bruno, S Turner, C Jones, D Schofield, J White, M Lund, S Chabal.
Replacements: A Titterrell, B Stewart, I Fernandez Lobbe, N Bonner Evans, R Wigglesworth, V Courrent, R Todd.
Referee: Alan Lewis (Ireland).