Modest Numancia are the only team to have beaten Barca in the league, winning 1-0 at home on the opening day of the season, and they made life difficult for their hosts early on.
After the break, however, Messi, twice, Samuel Eto'o and Thierry Henry all scored as Pep Guardiola's side stepped up a gear, and they moved to 53 points from 20 games.
Jose Barkero's blistering freekick for the visitors had made it 2-1 after 61 minutes.
"I congratulate Numancia. Their team knew what they were doing on the pitch, but Barca are lucky to have good players who can make a difference in a game, and they delivered the victory," Guardiola said.
Second-placed Real Madrid host Deportivo Coruna at the Bernabeu on Sunday, when Sevilla welcome Racing Santander.
Earlier, struggling Osasuna came back to draw 1-1 at Villarreal with a spirited performance at the Madrigal.
The visitors were rewarded for their ambition when substitute Dady scored from close range following an error by Pascal Cygan in the 65th minute, cancelling out Giuseppe Rossi's stylish first-half opener.
Villarreal remained fifth with 34 points, kept out of the Champions League places on goal difference by Valencia.
Osasuna climbed off the bottom, drawing level on 14 points with Real Mallorca but above them on goal difference.
Numancia gave the leaders an early scare when Javier del Pino headed in at the back post after 18 minutes at the Nou Camp, but the goal was harshly ruled out for a foul.
The visitors resisted until the 49th minute when Daniel Alves set up Messi by chipping over his marker and heading a cross in for his team mate to break the deadlock.
Iniesta threaded through for Eto'o to notch his 19th goal of the campaign soon after, before Barkero pulled one back, but it was only a brief respite from Barca's constant pressure.
Henry bagged the third from Messi's run and pass, and the Argentine made it 4-1 as he squirmed through two defenders and rounded the keeper to score. Messi was denied his hat-trick near the end when he hit the crossbar.
By then Numancia were down to 10 men following the 81st minute dismissal of Cesar Palacios.
Thank you for reading 5 articles this month* Join now for unlimited access
Enjoy your first month for just £1 / $1 / €1
*Read 5 free articles per month without a subscription
Join now for unlimited access
Try first month for just £1 / $1 / €1