Barca battle past Osasuna to go top
The champions moved on to 71 points from 28 games, three clear of title rivals Real Madrid, who visit neighbours Getafe on Thursday.
Argentina forward Messi has stolen the limelight at Barca in recent games, scoring 11 in the last five matches, but had a relatively quiet match at the Nou Camp.
The visitors comfortably held an out-of-sorts Barca at bay until the 72nd minute when Maxwell crossed low for Swedish striker Ibrahimovic to break the stalemate with his second goal in as many games.
Substitute Krkic struck near the end after a trademark passing move from the hosts as Osasuna's defence finally succumbed to the relentless pressure.
"We didn't play our best game today but we got the three points and that's all that counts," Ibrahimovic said in a television interview.
Barca barely had a sight of goal early on against a well-organised Osasuna and again missed the link up play of injured midfield organiser Xavi, who was watching from the stands.
Osasuna's Krisztian Vadocz forced a brilliant reaction save from Victor Valdes in the clearest chance of the first half and Pep Guardiola brought on Pedro for Thierry Henry at the break.
Pedro, pushing for a place in Spain's World Cup squad, had a hand in the build-up to both Barca's goals.
A swift counter-attack led to Ibrahimovic netting from close range, and as Osasuna tired, Messi curled a shot against the post before Krkic pounced to settle the home crowd's nerves.
Valencia are a distant 18 points behind Barca in third place after beating Malaga 1-0 at home in the late game thanks to an early strike from David Villa.
Spain winger Juan Mata crossed for his international team mate to notch his 18th goal of the campaign, but there was little else to illuminate a tight encounter.
Valencia strengthened their hold on the last automatic Champions League qualification berth, moving six points clear of of fourth-placed Real Mallorca on to 53 points.
Mallorca drew 0-0 at Racing Santander and are two ahead of Sevilla, who were held 1-1 at home by basement side Xerez on Tuesday.
In other games, Almeria continued their steady climb up the standings with a 1-0 win over Real Zaragoza that put them 10th, Villarreal were held 2-2 in Tenerife and 10-man Real Valladolid drew 0-0 at home to Espanyol.