Captain Sergio Ramos scored a stoppage-time equaliser to extend Real Madrid’s unbeaten start to the season and deny Barcelona victory in a bad-tempered El Clasico.
Luis Suarez’s glancing header from Neymar’s left-wing free-kick put Barcelona ahead at the Nou Camp.
But in a frantic ending, Cristiano Ronaldo went close before Ramos headed home Luka Modric’s free-kick to earn a point for Zinedine Zidane’s La Liga leaders.
Leaders Real remain six points clear of defending champions Barca after 14 matches.
Barca were moments away from reducing the gap to three points when Real captain Ramos pounced to make it 33 games without defeat for his side.
Real are approaching the winter break in the driving seat, Barca having gone three matches without a league win.
Barca forward Neymar, who was one of six players booked, will be suspended for next Saturday’s match at Osasuna.
Barca pay the price for late lapse
The hosts started slowly and managed only one attempt on goal – a Lionel Messi free-kick was comfortably gathered by Keylor Navis – in a scrappy first half.
In contrast, Ronaldo had three attempts in the opening 45 minutes as Luka Modric dominated for Real in midfield.
While far from their fluid best, Barca were better after the break and went in front when Raphael Varane conceded a free-kick just outside his area and Neymar nodded home from close range.
Messi, who has now gone six games without scoring against Real in all competitions, missed a great chance to double the lead after a lovely pass from substitute Andres Iniesta, on his return from injury, before Ramos had the final say.
The 30-year-old defender is establishing a reputation for scoring crucial late goals in big games.
Ramos scored a 93rd-minute equaliser against Atletico Madrid to send the 2014 Champions League final into extra time before Real won.
He also forced extra time with a stoppage-time equaliser in the 2016 Super Cup final, which Real also went on to win.
Resilient Real worthy leaders
This was a big test of character for Zidane and his players, and they emerged from it undamaged despite the absence of Gareth Bale, who continues his recovery from an ankle injury.
Real have taken 87 points from a possible 102 since Zidane took charge in January, including four from two games at the Nou Camp.
This draw was based on a steely determination and never-say-die spirit which was missing before Zidane’s arrival.
His tactics worked a treat as Real nullified Barca’s attacking threat in the first half, with Modric influential in central midfield alongside Mateo Kovacic on the left and Isco on the right.