Sevilla are top with 50 points, one ahead of Barcelona who dropped to second.
Frank Rijkaard, Barcelona's coach, said: "We can't cry over one defeat. It was an important game and we let slip a great opportunity, but one match does not decide the league."
Rijkaard had kept Cameroon striker Samuel Eto'o on the bench and started with an attacking trio of Ronaldinho, Giuly and Lionel Messi.
After a cagey opening Italian fullback Zambrotta broke the offside trap down the right flank and crossed from the byline for Ronaldinho to plant a powerful header just inside the post.
Ronaldinho won himself a penalty, knocking the ball round centreback Ocio, and running round the other side of the player, only to be tripped from behind as he went to shoot in the area.
Ocio was sent off, but goalkeeper Andres Palop blocked the Brazilian's penalty with his legs.
Sevilla's Brazilian fullback Alves was a continual threat down the right and as half time approached he crossed low into a crowded area for Kerzhakov.
The Russian striker controlled and spun to fire a left-footed shot low past Victor Valdes.
Alves put Sevilla in front with a superb free kick which seemed to get a slight deflection off the wall in the 61st, and a minute later Barca were reduced to 10 men as Giuly was harshly sent off after tussling for the ball with Alves.
Zambrotta soon followed Giuly off the field as he collected two yellow cards inside a minute in the 76th and only profligate finishing prevented Sevilla from scoring again at the end.
Police had to go into the stands at half time to break up fighting between Sevilla fans.
A Fernando Morientes goal gave third-placed Valencia a 1-0 home win over Celta Vigo and moved them on to 46 points.
The former Liverpool striker volleyed home from Hugo Viana's cross after 67 minutes for his 10th goal of the season.
But it was a laboured performance from Quique Sanchez Flores's side, who had goalkeeper Santiago Canizares to thank for a last minute save from Celta's Fernando Baiano.
Real Madrid, who are fourth on 43 points, host local rivals Getafe at the Bernabeu on Sunday.