The Brazil star opened the scoring at Camp Nou as he upstaged the world's most expensive player, who was withdrawn from the action midway through the second halfGoals from Neymar and Alexis Sanchez saw Gerardo Martino win his first Clasico in charge of Barcelona as the Blaugrana ran out 2-1 winners over Real Madrid on Saturday.
Jese Rodriguez scored a late consolation for Los Blancos, but the damage had already been done following the Brazilian's close range effort in the first half and Sanchez's moment of brilliance in the second.
The win moves Barcelona four points clear of Atletico Madrid at the top of La Liga, and six ahead of its opponent.
Lionel Messi returned in his first league start for four weeks following a thigh injury, with the hosts also boosted by the return of Javier Mascherano and Daniel Alves.
Madrid gave Gareth Bale his first Clasico start – his second since moving to the Spanish capital – while Luka Modric also returned the starting lineup.
After Sergio Busquets and Sergio Ramos had both been booked in the opening 14 minutes, the game began to settle into its rhythm with Barcelona controlling possession for long periods and Neymar creating two quick opportunities.
Having wasted his first, Neymar made no mistake with his second after excellent work from Iniesta.
The midfielder ran at the Madrid defense before laying the ball into his teammate and the Brazilian did the rest as he placed the ball through the legs of two defenders on its way into the far corner.
Madrid was denied an equalizer in the closing minutes of the first half by an excellent save from Valdes.
Ronaldo broke down the left and delivered an inviting cross into the six-yard box, with Sami Khedira beating Adriano to the ball, but his effort was well blocked by the goalkeeper.
The hosts began the second half keen to double their advantage quickly and saw good chances for Iniesta and Neymar denied by some resilient defending.
Iniesta saw a long-range effort blocked and Neymar had a volley well saved by Diego Lopez.
Madrid had struggled to create a clear-cut opportunity, but Ronaldo came close to leveling the scores just before the hour. Modric rolled a perfectly-weighted pass into the path of the Portugal international only for Valdes to make a great save down to his right to deny him.
Benzema – who replaced Bale in the 61st minute – saw his powerful strike crash against the crossbar and bounce to safety 10 minutes after coming on.
With 20 minutes to play, there was a moment of real controversy, as Mascherano pushed Ronaldo down in the box, with the referee waving play on. Replays appeared to show the visitors had a real shout for a penalty.
The non-call would prove crucial as Alexis secured the victory with 12 minutes to play. The Chilean executed a perfect chip over Lopez from the edge of the penalty area to send the home fans into raptures.
Jese fired home for the visitors during stoppage time after good work from Ronaldo, but it was too little too late for Carlo Ancelotti's side as Barca took the Clasico spoils.