Ten-man Real Madrid scrape past Sevilla
The Argentina winger kept his cool to finish from the tightest of angles in the 77th minute, soon after Carvalho had been unlucky to receive a second yellow card for a challenge on Alvaro Negredo.
Sevilla made life difficult for Jose Mourinho's side in a match which was low on quality but high on tension after Barca had temporarily moved five points clear of Real on Saturday with a 5-1 hammering of neighbours Espanyol.
Champions Barca go into the winter break with 43 points from 16 games, two ahead of second-placed Real.
Sevilla came in to the match having lost their previous four league outings but set out a robust and well-organised defence.
They almost snatched the lead just before the break but Pepe slid across to clear the danger after a free-kick.
Murmurs of unrest spread round the Bernabeu after Negredo broke clear only to fire over Casillas's goal near the hour mark and Mourinho reacted with a double substitution withdrawing the ineffective Karim Benzema.
Almost immediately Carvalho was sent off when the Portuguese was adjudged to have led with his arm into a header in the 63rd.
"The referee was out of his depth with the match, he wasn't consistent, and he made errors," Real director general Jorge Valdano told Spanish television. "I'm not comfortable with what's happened today."
The game turned into a niggly, frustrating affair as Real's desperation grew but they got their break when Pedro Leon's shot deflected to Di Maria on the left of the area.
Andres Palop raced off his line to block him, but the Argentine squeezed his shot in off the near post, and as tempers boiled towards the end the visitors also had a man sent off when Mouhamadou Dabo kicked out at Di Maria.
Earlier, Atletico Madrid recovered from their Europa League exit to beat Malaga 3-0 away and climb to sixth with 26 points.
Atletico, who failed to pass the group stage in the defence of their European title, used their heads to sink former Real coach Manuel Pellegrini's Malaga.
Portugal midfielder Tiago nodded them in front from a Simao Sabrosa free-kick after 22 minutes and he headed across for defender Alvaro Dominguez to score following another Simao free-kick in the 66th.
Three minutes later, the Portuguese connection worked again as Tiago, on loan from Juventus, headed the third at another set piece to wrap up the points.
Atletico are ahead of near neighbours Getafe on goal difference after Michel's side earlier came from two goals down to win 3-2 at Almeria.
Real Zaragoza stayed rooted to the foot of the table with 10 points after a 0-0 draw at Osasuna.
Zaragoza's new coach Javier Aguirre, the former Mexico boss, is still searching for his first win in five attempts since taking the helm last month.