Dortmund - Lionel Messi returned from injury to make an innocuous first appearance of the season as Barcelona were held to a 0-0 draw away at Borussia Dortmund in their Champions League opener on Tuesday.

Messi, who has missed the start of the season with a calf injury, came off the bench in a game which Barcelona were lucky not to lose after Dortmund captain Marco Reus missed a penalty and several chances in the second half.

Lucien Favre's side delivered on their pre-match promise to play fearlessly against five-time European champions Barcelona, probing the visitors from the wings and repeatedly finding gaps in the back line.

Both sides had chances in a game of cat and mouse in the first half, but it was Dortmund who looked the more likely to score.

Reus was denied at point-blank range by goalkeeper Marc-Andre ter Stegen and Jadon Sancho fired the ball over the crossbar shortly before half-time.

The hosts continued to turn the screw after the break, and were rewarded with a penalty when Nelson Semedo tripped Sancho in the box.

Yet Ter Stegen denied Reus again from 12 yards, diving low to his left to beat away his Germany team mate's spot-kick.

The Barcelona keeper has now saved four of the six penalties he has faced in the Champions League, and was called upon to stop Reus yet again later in the half as Dortmund continued to dominate.

A luckless Reus also fired another good chance well high, while substitute Julian Brandt thundered a long-range effort against the crossbar.

Messi had begun his 30-minute cameo by that point, having come on around the hour mark for Ansu Fati, the 16-year-old prodigy freshly crowned as Barcelona's youngest ever Champions League debutant.

Yet the Argentine remained as blunt as his team mates in a Barcelona attack stifled by the impeccable defending of Dortmund elder statesmen Mats Hummels and Axel Witsel.

He nonetheless had a chance to score the winner with the last kick of the game, but was denied by a desperate block from Thomas Delaney.

The draw leaves the two teams joint bottom of Group F after one game, after Inter Milan and Slavia Prague played out a 1-1 draw earlier on Tuesday.