The opening goal came when Pablo Sarabia fed through a pass for Vitolo, which Sergi Roberto failed to cut out, and the forward ran into the box and fired past Marc-Andre ter Stegen.
Sevilla should have doubled their lead when Sarabia was played in but he bizarrely chose to backheel the ball instead of finishing himself with the goal gaping.
Barcelona punished the Andalusians for their profligacy when Neymar drove forward and cut the ball back to Messi, who finished exquisitely.
The second half was a different story, with Barcelona on the front foot and Sevilla trying to counter.
Some Messi magic helped the Catalans get in front, with the Blaugrana No 10 wriggling through and setting up Suarez to fire home in the 61st minute.
There were chances at both ends that should have been converted after that, but Barcelona survived to win the game and stay second behind Real Madrid.