Defeats for Juventus, Barcelona and a draw for Chelsea has given hope to the chasing pack in Italy, Spain and England respectively.
Arguably the biggest surprise of the weekend came in Italy at Palermo where the home side overcame Serie A leaders Juventus.
Palermo took the lead over Juventus on 12 minutes when a poor clearance from keeper Gianluigi Buffon fell to Franco Brienza who curled a shot in from the edge of the area.
That result combined with Milan’s last gasp win over Lazio meant that Juve’s lead at the top was reduced to just two points. Milan looked to be heading for defeat before an Andrii Shevchenko free kick levelled the score 18 minutes from the end and Hernan Crespo grabbed the winner in injury time.
In Spain, Fernando Torres double sent Barcelona crashing to defeat to Atletico Madrid on Sunday. It was their first home loss of the season. The visitors were ahead in the first opening and were hanging on grimly until conceding a penalty on 70 minutes. However, the usually reliable Ronaldinho missed a penalty for Barcelona before Torres finished off the game with a penalty kick in stoppage time.
Atletico’s victory meant that Real Madrid, who beat Espanyol 4-0 on Saturday, are four points behind Barcelona.
Real are nine points clear of champions Valencia, who were held to a 3-3 draw by Real Sociedad on Saturday.
In England, Premier League leaders Chelsea dropped a rare point at Stamford Bridge, being held to a 0-0 draw by Manchester City, the only team to have beaten them this season.
Chelsea dominated possession and created numerous chances but they were thwarted by an inspired performance from David James in the City goal.
Second-placed Manchester United cruised to a 2-0 win at home to Birmingham City on Saturday to cut the lead at the top to 9 points with 12 matches remaining.
Champions Arsenal bounced back from their midweek defeat to Manchester United with a comfortable 3-1 win over Aston Villa.
In Germany, Bayern Munich stretched their Bundesliga lead to three points with a 2-0 win at home to Bayer Leverkusen on Saturday.
Bayern’s closest rivals, Schalke and Stuttgart, were held to draws on Saturday, while last season’s double winners Werder Bremen eased into contention with a 3-2 victory at Wolfsburg on Sunday.
Prolific Dutch striker Roy Makaay put Bayern ahead with a penalty in first-half injury-time and his Peruvian strike partner Paolo Guerrero sealed the win in the 68th minute.
Schalke were grateful to an injury-time equaliser from Ailton to snatch a 2-2 draw at bottom club Hansa Rostock, while Stuttgart were disappointing in a 1-1 draw at home to Kaiserslautern.
Bayern lead with 41 points, followed by Schalke on 38 and Stuttgart on 35, with reining champions Werder up to fourth on 34.
In France, Lyon opened up a seven-point lead at the top of Ligue 1 by thrashing Toulouse 4-0, while second-placed Lille were held to their third consecutive draw by Sochaux.
Juninho scored from two free kicks for Lyon, while midfielders Florent Malouda and Bryan Bergougnoux scored a goal each to earn the points.
Lyon now have 52 points from 25 matches, seven clear of Lille. Marseilles, who won 3-1 at Rennes, lie in third on 44 points.