The fans were welcomed back to the Nou Camp for the first time in 526 days, although it was the first time without the talented Argentinian for 17 years.
However, it was another stalwart who opened the scoring with Gerard Pique heading the ball into the back of the net for his 50th goal for Barcelona.
Martin Braithwaite then struck twice either side of half-time, as Messi might have been gone but not forgotten with fans chanting his name during the match.
Julen Lobete then pulled one back for the visitors in the 82nd minute before Mikel Oyarzabal struck three minutes later to set up a close finish.
But in injury time, Sergi Roberto restored Barcelona's two-goal advantage and the game finished 4-2.
Atletico Madrid and Celta Vigo both finished with 10 men as the holders secured a narrow 2-1 victory.
Angel Correa scored in the 23rd minute, but former Liverpool forward Iago Aspas levelled for the home side from the penalty spot.
Correa then added to his tally, only for red cards to be shown to Celta's Hugo Mallo and Atletico's Mario Hermoso in injury time to end a bad-tempered clash which also saw eight yellow cards.
Sevilla secured a dominant 3-0 win over Rayo Vallecano as the visitors finished the match with 10 men.
Luca Zidane was shown a straight red card in the 16th minute, with Youssef En-Nesyri giving the home side the lead from the penalty spot just three minutes later.
Erik Lamela then struck twice in the second half to secure all three points for Sevilla.
In Germany, Cologne secured a 3-1 win over Hertha Berlin while Mainz held on to a narrow 1-0 win over Leipzig.
In Ligue 1, Lyon suffered a surprise 3-0 defeat at Angers while Ilan Kebbal scored a late equaliser for Reims in an entertaining 3-3 draw with Montpellier.
Lens drew 2-2 with Saint-Etienne and Marseille and Bordeaux also finished with the same scoreline.
Clermont beat Troyes 2-0, while Nantes also won 2-0 against Metz.
Brest and Rennes played out a 1-1 draw.