Barcelona and Real Madrid's clasico was overshadowed by violent clashes between Catalan independence protesters and police outside Camp Nou.
After being postponed in October, there were renewed fears of unrest around Spain's most famous fixture and while the match was only briefly interrupted by yellow beach balls thrown on to the pitch, there was chaos outside the stadium.
Masked protesters set bins on fire and threw rocks and glass bottles at police, who responded by firing foam bullets. Forty-six people were injured in the clashes, and five people were arrested.
The protesters, many of them carrying Catalan separatist flags, began setting up barricades in the middle of the street which they then burned, after police arrived in dozens of police vans.
Inside the stadium, the match passed largely undisturbed, save for a brief pause early in the second half as dozens of yellow beach balls had to be removed by stewards.
"There was tension in the game and I noticed when some yellow balls fell down," said Barcelona coach Ernesto Valverde. "But nothing more. We tried to give a sense of normality."
"Everyone wanted to see a good football match," said Real coach Zinedine Zidane. "In that sense I think we can be happy."
The game was less eventful than expected, with neither Barcelona or Real ever really at their best and both seemingly happy not to lose.
A goalless draw means Barcelona stay top of La Liga, ahead of Real on goal difference while the historic score in league meetings between the two rivals remains 72 victories apiece.
The game was originally due to be played on October 26 but was postponed due to violent protests breaking out across Catalonia, following the sentencing of nine independence leaders to prison.
In the 53 days since, expectations swelled around what Democratic Tsunami, the Catalan independence protest group, might do to disrupt the most watched club football match in the world.
Early in the second half, yellow beachballs were thrown onto the field while blue banners bearing the slogan of Democratic Tsunami: 'Spain, sit and talk', were also held up.
Both teams had departed from the same hotel and aside from whistles and insults directed at the Madrid team bus, each arrived without incident. Club president Florentino Perez gave a thumbs up as he walked in.
Gareth Bale was last to get off, by which time he might have known he was starting for the first time in four matches. Sergio Ramos played in his 43rd clasico, a record for any player in history.
Lionel Messi blocked, Gareth Bale goal disallowed
For Barcelona, Sergio Busquets was included in the line-up first announced before he was swapped for Ivan Rakitic. Barca claimed it had been a communication error.
Real were the better side in the opening half an hour although Luis Suarez might have scored had he controlled Jordi Alba's cross at the back post.
There was a goalline clearance at both ends as Casemiro's header bounced up and had to be hooked away by Gerard Pique before Thibaut Courtois punched out to Lionel Messi but his shot was blocked by Ramos.
Shortly after the interval, stewards ran on to collect the beach balls and then Barcelona twice should have scored, only for Messi and Luis Suarez both to fluff finishes in quick succession.
Bale scored with 15 minutes left but his provider Ferland Mendy was a fraction offside. Neither team wanted to go for broke in the latter stages.