Three goals in the space of five minutes sparked the first half into life after the 20-minute mark as Adriano and David Villa scored either side of Mario Bermejo's strike.
Jordi Alba wrapped up the win just after the hour mark.
There was doubt as to whether Messi would play after the birth of Thiago on Friday, but he was there to inspire his side during early one-way traffic.
Cesc Fabregas had the first crack at goal in the second minute but sent his shot over, and Andres Iniesta then did likewise.
Iago Aspas fired wide for the visitors but Victor Valdes was hardly troubled in the Barca goal.
Messi then went close twice in quick succession, his first effort from close range held by Javi Varas before the goalkeeper pushed another one away from danger moments later.
Aspas brought a save out of Valdes in the 19th minute but Barca soon took the lead.
The breakthrough came when Pedro crossed from the right for Adriano to slot home.
Celta Vigo's reply was immediate, with Valdes unable to hold Fernandez Augusto's shot and Bermejo sweeping home the rebound.
But just as quickly as Celta equalised, Barca retook the lead, with Iniesta's pass finding Villa for the finish.
Goalscorer Adriano then limped off injured to be replaced by Dani Alves, and after the flurry of activity, both teams held station until the break.
Fabregas was replaced by Marc Bartra at the break as Barca made their second change, but they were slow to get back into rhythm.
Aspas sent a free-kick straight at Valdes in the 56th minute but it was not until the hour mark that Barca launched a meaningful attack.
Crucially, however, they scored. Villa turned provider to play the ball through for Jordi Alba to score from close range.
Barca seemed content at that, and other than a Pedro shot that flashed wide from the edge of the area, they rarely threatened to score again.
Roberto Lago fired over for Celta with 10 minutes left, but Barca saw the game out in comfort.