Real Madrid cruised to a 3-1 victory at last-place Real Zaragoza to keep the pressure on Barcelona, but the latter beat Real Sociedad in the late match to stay Spanish leader.
David Villa and Andres Iniesta scored a goal each in the first half while after the break Lionel Messi scored two and Krkic another in the final minutes to consolidate Barcelona’s place in the lead.
Mesut Oezil, Cristiano Ronaldo and Angel Di Maria scored for Madrid to improve to 38 points in the standings – two behind Barcelona.
Zaragoza had chances early at La Romareda stadium but Madrid took control with Oezil’s 15th-minute goal as the Germany playmaker capped a quick breakout by tucking a shot from the right under Leo Franco.
Franco was left flat-footed in the 44th as Ronaldo dipped his free kick over the defensive wall and into the empty side of goal for the Portugal international’s league-leading 17th goal.
Di Maria made it 3-0 three minutes after the break by shooting over Franco as the Zaragoza goalkeeper raced out to try and cut off the Argentina forward after Xabi Alonso had played him clear into the area.
Ricardo Carvalho was booked for halting Nicolas Bertolo’s run inside the area and Gabriel Fernandez stepped up to beat Iker Casillas from the penalty spot for Zaragoza’s goal in the 54th.
Franco made saves from Karim Benzema – playing alone as striker with Gonzalo Higuain out to injury – and Lassana Diarra, one of Madrid’s standouts in midfield, to keep the hosts within two goals.
But Zaragoza coach Javier Aguirre remained without a victory after four games.
Earlier, Fernando Llorente and David Lopez scored second-half goals as Athletic Bilbao rallied to beat Espanyol 2-1 on Sunday and deny it the chance to move into third place.
Espanyol striker Pablo Osvaldo was a threat throughout as the Argentine striker capped a slick buildup in the 33rd minute by firing past Athletic goalkeeper Gorka Iraizoz to put the visitors on course for a first win at the San Mames stadium since 2001.
Lopez’s 56th-minute entrance spurred the hosts on, however, as he tested Carlos Kameni before Llorente made up for a wasteful miss by powerfully heading Andoni Iraiola’s cross past Kameni for the 73rd-minute equaliser.
Lopez then curled in a perfectly taken free kick for the 78th-minute winner and the Basques’ fifth straight home win.
Espanyol stayed on 28 points – two behind third-place Villarreal – while Athletic improved to 22.
Also, David Trezeguet led Hercules’ own second-half rally as the French striker scored the first of four goals over a 15-minute span in a 4-1 win over Malaga.
Sebastian Fernandez put Malaga ahead after 12 minutes at the Jose Rico Perez stadium before Trezeguet coolly backheeled home Nelson Valdez’s centering pass in the 66th to begin the rally.
Royston Drenthe scored a penalty three minutes later before Abraham Paz scored Hercules’ third in the 72nd. First-year player Kiko Femenia scored his first goal of the season to cap the Costa del Sol derby.
Also, Sporting Gijon rallied to draw against Levante 1-1 and Oscar Serrano returned from a seven-month knee injury layoff to score two minutes into injury time as Racing Santander won 1-0 at Mallorca.