Celta had the first shot of the match inside the first two minutes, but on-loan Southampton attacker Sofiane Boufal's strike from distance was deflected wide of the Barcelona post.
The breakthrough arrived in the 10th minute for Barcelona, with Dembele turning home from close range after Messi had seen his effort kept out by Celta goalkeeper Ruben Blanco.
Dembele has had his off-the-field problems this season, but the goal was the Frenchman's 10th in all competitions during the first half of the 2018-19 campaign.
Dembele had another chance in the 22nd minute after breaking into a dangerous position, but Blanco just about did enough to put the attacker off, before covering defender Nestor Araujo managed to clear off the line.
Iago Aspas and Maxi Gomez had scored 18 of Celta's 28 league goals leading into this match, and the latter brought a smart save from Barcelona goalkeeper Marc-Andre ter Stegen in the 24th minute as the game opened up.
Barcelona doubled their advantage just before the half-time break, however, when Messi collected an excellent pass from Jordi Alba before finding the back of the net with a composed finish.
Celta had their moments going forward in the opening 45 minutes, but their defensive issues were once again on full display at Camp Nou.
It went from bad to worse for the away side early in the second half when their leading scorer Aspas was forced off the field with an injury.
Brais Mendez curled one just wide of the Barcelona post in the 56th minute as Celta looked to hit back, but the Spanish champions were comfortable in a defensive position.
Luis Suarez should have sent Barcelona 3-0 ahead on the hour when he raced onto a pass from Alba, but the Uruguay international's effort just missed the post.
The home side had two more chances in the 67th minute, but Blanco did well to keep out Dembele's strike before Mallo stopped Messi from turning home the rebound.
Fran Beltran had a chance for Celta 10 minutes later when he met a dangerous corner at the far post, but the substitute just could not turn home under pressure from Luis Suarez, and 2-0 was how it finished as Barcelona ended 2018 with a win.
BARCELONA (4-3-3): Ter Stegen; Semedo, Pique, Lenglet, Alba; Vidal (Arthur 63'), Rakitic, Busquets (Alena 86'); Dembele (Coutinho 68'), L Suarez, Messi
CELTA VIGO (4-4-2): Ruben; Mallo, Araujo, Costas, Mazan; Boufal (Sisto 76'), Okay (Lobotka 46'), Jozabed, Mendez; Aspas (Beltran 52'), Gomez