Bale had been surprisingly selected for just his second start since joining the club by Real boss Carlo Ancelotti, but struggled to make an impression as Barca dominated the first-half.
Neymar gave the hosts a deserved lead with a neat finish from a narrow angle on 19 minutes before Lionel Messi ought to have doubled the advantage when he fired wide moments later.
Bale was replaced by Karim Benzema on the hour mark and the Frenchman nearly made an instant impact when he smashed the crossbar with 21 minutes remaining.
However, Sanchez sealed the points 12 minutes from time with a delightful chip over Diego Lopez.
Substitute Jese Rodriguez pulled a goal back for Madrid in stoppage time, but it was too little too late as Barca moved six points clear of their rivals at the top of La Liga.
"I am very happy for the victory, the three points and also for my goal. Every player wants to play in this game and I will go home very happy," Sanchez told GOL TV.
"I didn't have any other option with the goal. I saw the 'keeper off his line and I had to try it. Fortunately it went in."
Real, though, were left less than happy with the performance of referee Alberto Undiano Mallenco as he turned down two penalty claims with the score at 1-0.
"The team have shown face against a very difficult opponent," said Sergio Ramos.
"We have put Barca in difficulty, it is not easy to see them waste time, but there were two clear penalties and, although I don't like to judge referees, there are things against which you cannot fight."
Bale's inclusion was not the only surprise amongst Ancelotti's starting line up as Ramos was also moved into an unfamiliar central midfield role.
The Welshman had Madrid's first effort on goal with a left-footed strike that sailed well over, but it was Barca who settled quicker as Real struggled to come to terms with Neymar's pace and trickery.
It was no surprise that it was the Brazilian who put Barca in front when he collected Andres Iniesta's pass inside the area and sneaked his shot from a narrow angle inside the far post with the aid of a slight deflection off Dani
The presence of Cesc Fabregas in the Barca side had forced Messi into an unusual position on the right side.
However, the Argentine should have doubled the lead two minutes later when he was released through on goal only to uncharacteristically slide the ball wide on his trusted left foot.
Madrid did finally create a clear opening two minutes before the break when Sami Khedira slid in to meet Cristiano Ronaldo's cross and after his effort was brilliantly kept out by Victor Valdes, the ball appeared to strike Adriano on the arm.
Bale's miserable first-half was rounded off in stoppage time when he saw a yellow card for a high challenge on Gerard Pique.
Madrid started the second-half brightly as their pressing higher up the field unsettled Barca.
However, the visitors had Lopez to thank for keeping them in the game as Javier Mascherano picked out Neymar with a wonderful pass in behind the Madrid defence and his volley was beaten away by the keeper.
Ancelotti then introduced Asier Illarramendi for Ramos to improve Madrid's use of the ball in midfield.
Real's pressing very nearly delivered an equaliser as Luka Modric and Khedira robbed Iniesta before the Croat fed Ronaldo and his rasping drive was turned behind by Valdes.
Bale was then withdrawn as Ancelotti sent on Benzema in search of an equaliser.
Ronaldo was left furious with the referee when he felt he had been bundled over by Adriano inside the area.
And seconds later Benzema nearly marked his entrance in stunning fashion as he lashed an effort from outside the area off the underside of the bar.
Sanchez ensured that Barca wouldn't have to endure a nervy final 10 minutes as he showed great speed to reach Neymar's pass before lifting a wonderfully judged lob over Lopez.
Jese gave Madrid a flicker of hope in stoppage time as he collected Ronaldo's pass to score low past Valdes, but Los Blancos didn't have time to mount another attack as they slipped to their second defeat of the season.