It was Barcelona's 13th Supercup and sixth in the last nine seasons. However, Sevilla squandered a golden chance to send the match into extra-time when Wissam Ben Yedder missed a last-minute penalty.
Pablo Sarabia gave Sevilla the lead after just nine minutes on a counter-attack.
Gerard Pique, who announced his international retirement with Spain on Saturday, levelled three minutes before the interval for Barcelona after he was fastest to respond to a loose ball following a Messi free-kick.
That set the stage for French star Dembele to take the headlines with a 78th minute screamer from 25 yards and again Messi played a crucial role with the key pass.
There was still time for late drama when Barca goalkeeper Marc-Andre Ter Stegen brought down Aleix Vidal in the area as the Sevilla youngster closed in on an equaliser.
But Ben Yedder hit a weak penalty which was easily saved by Ter Stegen.
The match had endured a controversial build-up when Sevilla threatened to file a complaint against Barcelona if the La Liga champions fielded more than three non-EU players.
The Spanish football federation (RFEF) said on Saturday that there would be no restrictions on players from outside the EU for the Supercup, despite only three being allowed in squads for league matches.
Sevilla said they could file a complaint if Barca name an “improper lineup” in Tangier.
New signings Malcom, Arturo Vidal and Arthur were expected to be Barca's three non-EU players on Sunday, although Brazilian centre-back Marlon also travelled with the squad.
In the end, 21-year-old winger Malcom, signed from Bordeaux in the summer, was left out of the match day line-up.
Philippe Coutinho has reportedly acquired a Portuguese passport through his wife in the last week, while his fellow South Americans Messi and Luis Suarez are already EU citizens.
Sevilla qualified for Sunday's match as last season's Copa del Rey runners-up, after Barcelona won the league and cup double.