man Barcelona closed to within three points of La Liga leader Real Madrid when Lionel Messi struck his 35th goal of the campaign in a 2-0 win at Real Mallorca Saturday. The Argentine World Player of the Year, who has now scored 18 goals in his last nine games for his club, fired Barca ahead in the 25th minute at the Iberostar Estadio. The Mallorca defenders failed to deal with his inswinging free kick from the right and it flew past goalkeeper Dudu Aouate into the corner of the net. Barca was on cruise control until 12 minutes into the second half when midfielder Thiago Alcantara was harshly adjudged to have handled the ball and the referee showed him a second yellow card. The champion endured a nervy 20 minutes before a Messi shot cannoned back off Aouate's left-hand post and center back Gerard Pique was on hand to slot the rebound into the empty net. Real is looking to get back to winning ways when it hosts Real Sociedad later Saturday after Jose Mourinho's side drew its last two matches. Barca, chasing a fourth straight La Liga title, has 69 points from 29 matches. Bayern beats Hannover In Berlin, Bayern Munich survived a late scare to beat Hannover 2-1 Saturday and turn the screw on Bundesliga leader Borussia Dortmund. Toni Kroos scored in the 36th minute before Mario Gomez came off the bench to make it 2-0 with his 23rd goal of the season in the 68th. Hannover substitute Didier Ya Konan pulled one back in the 74th, before either side could have scored in the frantic final minutes. Bayern is two points behind Dortmund, which visits Cologne Sunday. Schalke 04 jumped into third place and an automatic Champions League qualification spot with a 2-0 win over last season's runner-up Bayer Leverkusen. Dutchman Klaas-Jan Huntelaar scored both goals to take his league tally to 22. Borussia Moenchengladbach dropped to fourth on 51 points, two behind Schalke, after conceding two goals in two minutes against Hoffenheim to lose 2-1 in its first home defeat in a year. Augsburg drew 1-1 at Werder Bremen, Hertha Berlin won 3-1 at Mainz and Freiburg beat bottom side Kaiserslautern 2-0.