Barca beat last season’s UEFA Cup winners Sevilla 3-1, helped by first-half goals from Ronaldinho, while second-placed Valencia went down 3-2 at Celta Vigo.
Argentine winger Lionel Messi scored Barcelona’s third goal 10 minutes from the whistle to seal victory.
Valencia’s defeat ends their unbeaten streak in La Liga and the Champions League.
David Navarro opened the scoring for Valencia with a header after 39 minutes but Fernando Baiano levelled for the hosts just before half-time.
Goals shortly after the break from Iriney and Canobbio put Celta well ahead although Fernando Morientes reduced the deficit after 63 minutes.
At the other end of the table, struggling Athletic Bilbao and Racing Santander both won away from home for their first victories of the season.
Athletic triumphed 3-2 at Gimnastic Tarragona but made their supporters fret after almost blowing a 3-0 lead.
Racing enjoyed a scrappy 1-0 win at Osasuna with Felipe Melo scoring from the spot after 52 minutes.
Bottom club Real Sociedad crashed 3-1 at home to Real Zaragoza.
Real Madrid’s unbeaten season came to an end on Saturday when they went down 1-0 at Getafe, with Ronaldo being dismissed in the dying moments for a second bookable offence.
The red card will rule him out of next weekend’s derby with Barcelona.
In Saturday’s other game, Argentinian striker Sergio Aguero took a leaf out of Diego Maradona’s book, scoring with his hand to give Atletico Madrid a 2-1 win over promoted Recreativo Huelva.
Dejan Stankovic scored twice as Inter Milan maintained their unbeaten start in Serie A, coming from behind to beat Catania 2-1 and leapfrog Palermo and Roma at the summit.
Palermo lost 3-2 to Atalanta while Roma lost 1-0 to Reggina.
AC Milan’s run of draws was extended to four as they came from behind to claim a point against Sampdoria on Saturday.
Substitute Kakha Kaladze earned Carlo Ancelotti’s side a 1-1 draw five minutes from time in Genoa.
In Siena, three men were sent off as the hosts scored twice in injury time to complete a dramatic late comeback and see off high-flying Messina 3-1.
In France, Bordeaux warmed up for their vital Champions League clash with Liverpool by beating struggling Monaco 1-0.
Substitute Edixon Perea’s second-half strike secured the win and condemned Monaco to their fourth defeat in five league games.
Midfielder Juninho’s late strike secured a 2-1 victory for champions Lyon against 10-man St Etienne.
Brazilian Juninho, who missed a penalty, slotted home an 88th-minute winner for the league leaders after St Etienne’s Lamine Diatta was sent off.
Pauleta struck twice as Paris St Germain, despite having a player sent off in the first half, brushed aside Sedan 4-2 in the French capital.
Substitute Abdul Keita’s second-half strike secured a vital point for Lille in a 1-1 draw against struggling Troyes.
In Germany, Werder Berlin climbed to the top of the Bundesliga on Saturday with a 6-0 demolition of bottom club Vfl Bochum.
Werder went top on goal difference from champions Bayern Munich, 4-2 winners over Hertha Berlin, and Schalke 04, who kept up their title push with a 2-1 defeat of Hamburg.
Hertha, who went into the weekend at the head of the pack, slipped to seventh after falling to the might of Bayern, who scored through Roy Makaay, France international defender Willy Sagnol and Claudio Pizarro. Bayern’s three points were assured by Lukas Podolski, the German international’s first goal for Bayern since his move from Hamburg.
CSKA Moscow, Arsenal’s opponents in the Champions League tomorrow night, enjoyed a 2-1 win over Rubin Kazan. Yuri Zhirkov and Alexandro Dudu scored the goals for CSKA.
Helder Postiga grabbed a brace as Porto stayed top of the Portuguese Liga with a 3-0 win over Maritimo.
Benfica, who face Celtic tomorrow, eased to a 4-0 win over Uniao Leiria, with Fabrizion Miccoli scoring twice.
Denmark’s Copenhagen, who face Manchester United tomorrow, enjoyed a domestic win, beating Randers 2-0.
In Holland four goals in the final 15 minutes saw PSV come from a goal behind to preserve their two-year unbeaten home record with a 4-1 win over 10-man Roda JC. The win moves the defending champions up to third place, two points behind leaders Ajax, who won on Saturday. Feyenoord were held to a 2-2 draw with RKC Waalwijk. Ajax maintained top spot after winning a five-goal thriller against Groningen thanks to a stunning late strike from Urby Emanuelson.