Published: 2017-09-28 03:19:01 BdST
After a frustrating first half, Barcelona scored in fortunate circumstances when Coates bundled into his own net under pressure from Luis Suarez in the 49th minute.
Lionel Messi made his 593rd Barcelona appearance -- tying him third with Carles Puyol on the club's all-time list -- but the Argentine was unable to add to his brace against Juventus in their opening win.
Barcelona have been in free-scoring mood this season, with 20 goals in six La Liga games, but were left frustrated by a host of missed opportunities in the opening half in Lisbon.
Suarez wasted a simple chance in the 18th minute when he side-footed wide after Jordi Alba had been set free by a sublime Messi pass.
The visitors dominated possession but lacked their usual cutting edge against the hosts' well-organised defence, with Messi heading a good opportunity straight at Rui Patricio.
With the creative triumvirate of Andres Iniesta, Ivan Rakitic and Sergio Busquets struggling to impose themselves, Messi was forced to drop deeper, leaving Suarez isolated at attack.
The second half was only four minutes old when Coates converted beyond Patricio and, though Barcelona controlled possession thereafter, it was Sporting who created the best opportunities.
Marc-Andre ter Stegen made a brilliant save to deny Bruno Fernandes during a strong period for Sporting in the 71st minute before substitute Paulinho wasted a late chance to double Barcelona's advantage when he fired straight at Patricio.
Barcelona are top of group D with six points, three clear of Sporting and last season's finalists Juventus who beat Olympiakos 2-0. The Greek champions have yet to pick up a point after two games.